在微服务中确定并行网络调用与事件驱动的数据同步之间的关系

时间:2019-06-10 09:05:09

标签: microservices

在产品页面上(如图所示),我们根据微服务响应显示和隐藏选项。所有这些微服务调用都是并行的,并且不会引起任何延迟问题(到目前为止)。

enter image description here

这就是微服务的结构。

菜单中显示的

制造,型号,变体产品微服务

提供支持

产品图片,视频,360次观看,新闻,路试来自 CMS 微服务

产品评分,评论来自产品评论微服务

现在,这里需要注意的一点是,每件事都是对相应微服务的网络调用。我们正在对上述微服务进行9个并行的网络调用,以增强产品页面上的内容。

这是问题...

  1. 是否应该继续进行多个并行调用,因为它们不会引起任何延迟问题?
  2. 我们是否应该考虑通过将每个微服务的请求合并为1来减少网络调用?例如:将对CMS的多个服务调用合并为1,并对其他两个微服务执行相同的操作。这样,我们会将网络通话次数从9减少到3
  3. 是否应该通过事件驱动的系统将此数据同步到产品微服务?考虑到读取吞吐量,这看起来是最优化的方法。但是实施事件驱动的系统值得吗?

在这种情况下,请帮助我们确定正确的方法。

1 个答案:

答案 0 :(得分:0)

我认为此页面的网络调用过多。

1)是否应该继续进行多个并行调用,因为它们不会引起任何延迟问题?

我相信这些电话太多了。

2)我们是否应该考虑通过将每个微服务的请求合并为1来减少网络呼叫?

我认为是。有几个原因。

连接速度较慢 如果网络速度不错,那么您可能会感觉不到,但是对于移动用户而言,这可能会太多。此外,对于速度较慢的网络,带宽也非常重要。提防

安全性 您调用的API越多,暴露的攻击面就越多。

添加更多API 如果添加更多API,则可能必须同时更改客户端和服务器。但是,有了统一的响应,您要做的工作就更少了。

3)是否应通过事件驱动系统将此数据同步到产品微服务?

要看情况。当您的只读查询过高时(这种情况),实例化视图非常有用。当用户数量增长时,您最终可能需要采用这种方法。