【发布时间】:2016-10-14 20:20:10
【问题描述】:
在构建微服务时选择特定通信协议的最佳实践是什么?
例如,在构建 MySQL 微服务时,我应该使用原生 MySQL 连接还是更喜欢 REST 中的包装 API 或其他方式?
其次,对于微服务之间的所有交互,我应该选择和使用像 REST、JSON-RPC 等这样的单一协议吗?
谢谢!
【问题讨论】:
标签: web-services architecture microservices
在构建微服务时选择特定通信协议的最佳实践是什么?
例如,在构建 MySQL 微服务时,我应该使用原生 MySQL 连接还是更喜欢 REST 中的包装 API 或其他方式?
其次,对于微服务之间的所有交互,我应该选择和使用像 REST、JSON-RPC 等这样的单一协议吗?
谢谢!
【问题讨论】:
标签: web-services architecture microservices
使用尽可能少的层,因此如果不需要,请不要在 MySQL 之上创建 REST API。尽量保持简单。
话虽如此,尽量避免微服务之间的 RPC。改为使用消息传递,以便服务可以自治。我们不希望它们依赖于可能未运行的服务或其他任何东西。定义限界上下文并让微服务存在于这些限界上下文中,使它们成为特定业务问题的所有者。
从那时起,您可以为每个微服务选择所需的任何存储、协议、安全等。消息系统选择一个选项可能更容易。虽然不是必需的,但它确保您无需在各处实现网关即可从一个网关转换到另一个网关。
【讨论】: