什么用于微服务内部通信.NET
What to use for microservices inter-communications .NET
正在研究将我们的整体拆分为微服务并尝试 understand/determine 服务之间通信的最佳方式,或者我是否应该在服务之间进行通信?
每个微服务应该是只提供 Http 服务的 Web 服务,还是应该使用服务总线来传递工作请求?
... if I should even be communicating between services?
他们在需要时进行交流,在大多数情况下他们确实需要。因此,微服务之间以及 API Gateway
或客户端(Web 浏览器、移动应用程序、桌面应用程序)与微服务之间存在通信。在任何情况下,通信都是使用网络完成的。
Should each micro-service be a web service that only serves Http or should I be using a service bus to pass work requests around?
你问的是他们应该如何沟通。
有两种沟通方式:
同步,即请求-响应;客户端和 API gateway
或微服务之间最典型的用法;在这种类型中,客户端发送请求并等待响应;它最简单但可扩展性或弹性较差; 注意多个微服务之间的嵌套调用中的级联故障;
异步,即基于事件; Client不等待响应,在操作成功或失败时通知它;这更复杂,但更具可扩展性,它被 resilient systems.
使用
那么根据协议的不同,至少有以下几种通信方式:
- RPC
- REST - 特别推荐 HATEOAS
- Publish-subscribe
正在研究将我们的整体拆分为微服务并尝试 understand/determine 服务之间通信的最佳方式,或者我是否应该在服务之间进行通信?
每个微服务应该是只提供 Http 服务的 Web 服务,还是应该使用服务总线来传递工作请求?
... if I should even be communicating between services?
他们在需要时进行交流,在大多数情况下他们确实需要。因此,微服务之间以及 API Gateway
或客户端(Web 浏览器、移动应用程序、桌面应用程序)与微服务之间存在通信。在任何情况下,通信都是使用网络完成的。
Should each micro-service be a web service that only serves Http or should I be using a service bus to pass work requests around?
你问的是他们应该如何沟通。
有两种沟通方式:
同步,即请求-响应;客户端和
API gateway
或微服务之间最典型的用法;在这种类型中,客户端发送请求并等待响应;它最简单但可扩展性或弹性较差; 注意多个微服务之间的嵌套调用中的级联故障;异步,即基于事件; Client不等待响应,在操作成功或失败时通知它;这更复杂,但更具可扩展性,它被 resilient systems.
使用
那么根据协议的不同,至少有以下几种通信方式:
- RPC
- REST - 特别推荐 HATEOAS
- Publish-subscribe