微服务内部通讯

Zei*_*ina 5 microservices

我一直在阅读微服务架构,但是我仍然无法理解微服务之间的通信机制。
他们在许多文章中说微服务通常通过RESTful API公开。但是,当您搜索Internet时,您总是会看到基于消息和后端通信事件的实现。

所以我很困惑,REST API是所有微服务的标准,还是我们可以看到没有REST端点的微服务。

tec*_*mer 5

对于您的问题,首先让我们了解一种服务相互交互的方式,让我们创建两个服务订单服务和客户服务:

  1. 一个服务需要来自其他服务的一些数据来处理其请求,例如:假设您要下订单,因此从ui中,您必须按http请求订购服务(可以是rest,也可以在n个之间有一个api网关使用其他协议(例如protobu)调用订单服务下订单,现在假设订单服务需要检查客户的有效性,因此订单服务需要同步调用客户服务-最有可能您会休息或创建一个protobuf或在服务之间建立持久的网络套接字,然后在客户服务响应后,订购服务将继续进行。

在这种情况下,需要模仿同步通信,一种直接的方法是休息或原型,或者通过消息传递来模仿

  1. 根据一个服务事件,您想要更新其他服务:通常,这种首选样式是消息传递总线,其中一个服务发出事件,而其他多个服务在消息传递总线上具有侦听器并做出相应的反应。例如:在客户服务中说客户名称的更新时,您要在订单服务中更新客户的缓存名称,在这种情况下,当客户服务中的名称更新时,它会发出客户名称更新事件,订单服务对其进行订阅,然后对它做出反应

您的第三个问题是,有没有可能没有休息端点的服务:::是的,但每个服务都必须是可到达的。因此,请使用休息或其他形式

上面提到的链接:microservices.io很好,请再次浏览