在构建微服务时选择特定通信协议的最佳做法是什么?
例如,在构建MySQL微服务时,我应该使用本机MySQL连接还是更喜欢REST中的包装API?
其次,我应该选择并使用REST,JSON-RPC等单一协议来实现微服务之间的所有交互吗?
谢谢!
答案 0 :(得分:3)
尽可能少地使用图层,因此如果不需要,请不要在MySQL之上执行REST API。保持尽可能简单。
话虽如此,试着避免微服务之间的RPC。使用消息传递,以便服务可以是自治的。我们不希望它们依赖于可能未运行的服务或任何其他服务。定义有界上下文并让微服务存在于这些有限的上下文中,使它们成为特定业务问题的所有者。
从那时起,您可以为每个微服务选择所需的任何存储,协议,安全性等。消息传递系统选择单个选项可能更容易。虽然不是必需的,但它确保您不需要在任何地方实现网关以从一个网关转换为另一个网关。