进行一些研究,将我们的整体分解为微服务,并尝试理解/确定服务之间通信的最佳方式,或者我是否应该在服务之间进行通信?
每个微服务应该是仅为Http服务的Web服务,还是应该使用服务总线来传递工作请求?
答案 0 :(得分:2)
...如果我甚至应该在服务之间进行通信?
他们在需要时进行沟通,并且在大多数情况下他们确实需要。因此,微服务之间以及API Gateway
或客户端(Web浏览器,移动应用程序,桌面应用程序)和微服务之间存在通信。无论如何,使用网络进行通信。
每个微服务应该是仅为Http服务的Web服务,还是应该使用服务总线来传递工作请求?
你在问他们应该如何沟通。
有两种类型的沟通:
同步,即请求 - 响应;客户端与API gateway
或微服务之间最典型的用法;在这种类型中,客户端发送请求并等待响应;它最简单但可扩展性或弹性较小; 了解多个微服务之间嵌套调用中的级联故障;
异步,即基于事件;客户端不等待响应,并在操作成功或失败时通知;这更复杂,但它更具可扩展性,并由resilient systems使用。
然后,根据协议,至少有以下类型的通信: