基于微服务的架构中的上游和下游服务是啥?

Posted

技术标签:

【中文标题】基于微服务的架构中的上游和下游服务是啥?【英文标题】:What is Upstream and Downstream services in a Micro-service based architecture?基于微服务的架构中的上游和下游服务是什么? 【发布时间】:2020-02-25 16:35:47 【问题描述】:

我听说过通用术语“上游服务”和“下游服务”这两个术语,但我遇到了一些关于微服务架构的文章,他们在其中使用了这些术语,但是我无法了解上游的含义基于微服务的架构中的下游服务将是?有人有一个简短的解释吗?

我已经知道上游服务是那些不依赖于任何其他服务的服务,而下游服务依赖于上游服务,例如前端将是后端的下游服务,因为它依赖于它。

我正在.Net Core 中开发微服务。

【问题讨论】:

互联网上有大量资源详细解释了这个主题。这可能是一个很好的起点 - softwareengineering.stackexchange.com/questions/312401/… 我已经看过这个来源,但这主要是笼统的,不是特定于微服务的,你能给我一个微服务的链接吗?我已经尝试在网上搜索,但我没有找到! 如果您正在为微服务构建 API 网关,也许查看 Ocelot 的文档会让您了解它们如何定义下游和上游 - ocelot.readthedocs.io/en/latest/features/routing.html 将此问题添加到计算机科学中未解决的问题列表中。 :) 【参考方案1】:

定义1:行动方向

上游:接收来自/发送响应的请求

上游服务正在呼叫我。

下游:发出请求/接收响应

我正在调用服务下游

定义2:依赖方向

上游:向/接收来自的响应的请求

我正在调用服务上游

下游:接收来自/发送响应的请求

下游服务正在呼叫我。

那么,

互联网上有支持这两种定义的资源。也许有一天我们会解决这个问题,但现在的答案是:两者都可以。

【讨论】:

我也有同样的理解。直到今天我才知道情况正好相反。有很好的论据。请参阅softwareengineering.stackexchange.com/questions/312401/… 和reflectoring.io/upstream-downstream,正如迈克尔在评论中指出的那样。 嗨@Bernd 非常有趣的讨论。也许我们应该投票并一劳永逸地解决它!【参考方案2】:

下游服务是消费上游服务的服务。特别是,它们依赖于上游服务。更一般地说,上游服务不需要知道或关心下游服务的存在。下游服务关心上游服务的存在,即使它们只是选择性地使用它们。

http://reflectoring.io/upstream-downstream

【讨论】:

这是一篇支持你所说的好文章:reflectoring.io/upstream-downstream【参考方案3】:

我看是水流的比喻:河流的源头在上游,出口在下游。

但实际上它是胡言乱语。如今,服务通过不同的方式交换数据。一个服务可以调用另一个服务来获取数据,也可以调用另一个服务来推送数据。服务可以通过先调用从另一个服务接收数据,也可以被动接收数据,例如接收推送通知。

在工作中,你可以明智地使用它:如果比你年长的人调用服务上游服务,那就去吧;如果您是团队中最资深的人,请随意命名。

【讨论】:

这是一个很棒的类比!【参考方案4】:

是服务流,所以提供者在上游,消费者在下游。

http://reflectoring.io/upstream-downstream

【讨论】:

【参考方案5】:

生产过程中的上游和下游

上游和下游软件依赖项

Source

一张图胜过千言万语!!

【讨论】:

以上是关于基于微服务的架构中的上游和下游服务是啥?的主要内容,如果未能解决你的问题,请参考以下文章

微服务架构下的数据一致性

微服务拆分原则以及实践

微服务架构中的社交 SSO 是啥样的?

读服务+写服务分离架构,我坚决反对!

微服务架构是啥

微服务架构是啥?