什么用于微服务间通信.NET

时间:2017-04-26 12:03:03

标签: .net design-patterns microservices

进行一些研究,将我们的整体分解为微服务,并尝试理解/确定服务之间通信的最佳方式,或者我是否应该在服务之间进行通信?

每个微服务应该是仅为Http服务的Web服务,还是应该使用服务总线来传递工作请求?

1 个答案:

答案 0 :(得分:2)

  

...如果我甚至应该在服务之间进行通信?

他们在需要时进行沟通,并且在大多数情况下他们确实需要。因此,微服务之间以及API Gateway或客户端(Web浏览器,移动应用程序,桌面应用程序)和微服务之间存在通信。无论如何,使用网络进行通信

  

每个微服务应该是仅为Http服务的Web服务,还是应该使用服务总线来传递工作请求?

你在问他们应该如何沟通。

有两种类型的沟通:

  1. 同步,即请求 - 响应;客户端与API gateway或微服务之间最典型的用法;在这种类型中,客户端发送请求并等待响应;它最简单但可扩展性或弹性较小; 了解多个微服务之间嵌套调用中的级联故障;

  2. 异步,即基于事件;客户端不等待响应,并在操作成功或失败时通知;这更复杂,但它更具可扩展性,并由resilient systems使用。

  3. 然后,根据协议,至少有以下类型的通信:

    1. RPC
    2. REST - 特别推荐使用HATEOAS
    3. Publish-subscribe
    4. 您可以阅读更多herehere