微服务.NET相互通信的好方法是什么?使用NETMQ(ZeroMQ端口)进行对等通信会更好(性能)还是通过总线(NServiceBus或RhinoBus)更好? 您是否也将数据访问层分解为微服务?
-Indu
答案 0 :(得分:0)
基于Service Bus的设计允许您的应用程序利用decoupling middleware设计模式。您可以明确控制每个微服务的通信方式。您还可以限制流量。但是,这实际上取决于您的要求。有关构建和测试.NET中的微服务(C#),请参阅this tutorial。
答案 1 :(得分:0)
我们正在开始这条道路。像所有新的热门新方法一样,您必须小心,您实际上已经实现了使用微服务方法的好处。
我们已将Azure Service Fabric评为一种可能性。作为托管您的应用程序的地方,它似乎非常有前景。如果您希望应用程序与环境紧密集成,还有一个令人印象深刻的API。这种整合可能会回答您的问题。需要注意的是,API仍在不断变化(它正在改进)并且文档很少。它也有点像"供应商锁定"。
为了简单起见,我们首先让我们的微服务是通过REST进行通信的简单无状态应用程序。端点已有详细记录,并包含合同版本号作为URI的一部分。我们打算在需要时(即性能)引入更复杂的交互方式。
要回答关于"数据访问层"的问题,我的意见是每个微服务都应以任何最适合该服务的方式保持状态。实际存储对于微服务是私有的,其他服务只能通过其公共API使用该数据。
答案 2 :(得分:-1)
我们最近开源了我们的.NET微服务框架,它涵盖了微服务所需的几种模式。我建议至少要了解一下进入这种架构时需要什么。 https://github.com/gigya/microdot