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

Shu*_*ari 17 microservices .net-core api-gateway

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

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

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

tom*_*ern 23

定义 1:行动方向

上游:接收来自的请求。

  • 我的上游服务正在呼叫我。

下游:向 发出请求。

  • 我正在调用我的下游服务

定义 2:依赖的方向

上游:向(并接收响应)发出请求。

  • 我正在调用我的上游服务。

下游:接收来自(并向其发送响应)的请求。

  • 我的下游服务正在呼叫我。

所以,

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

  • 我也有同样的理解。直到今天我才知道事实恰恰相反。有很好的论据。请参阅 https://softwareengineering.stackexchange.com/questions/312401/which-way-are-downstream-and-upstream-services 以及 https://reflectoring.io/upstream-downstream/ 中,Michael 在下面指出评论。 (4认同)

Ash*_*ani 14

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

http://reflectoring.io/upstream-downstream


rm *_*tar 14

生产过程的上游和下游 在此输入图像描述

上下游软件依赖关系 在此输入图像描述

来源

一张图片胜过千言万语 !!


Shi*_* Lv 10

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

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

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