【问题标题】:What are the best practices in building Microservices APIs in terms of communication technology? [closed]在通信技术方面构建微服务 API 的最佳实践是什么? [关闭]
【发布时间】:2016-10-14 20:20:10
【问题描述】:

在构建微服务时选择特定通信协议的最佳实践是什么?

例如,在构建 MySQL 微服务时,我应该使用原生 MySQL 连接还是更喜欢 REST 中的包装 API 或其他方式?

其次,对于微服务之间的所有交互,我应该选择和使用像 REST、JSON-RPC 等这样的单一协议吗?

谢谢!

【问题讨论】:

    标签: web-services architecture microservices


    【解决方案1】:

    使用尽可能少的层,因此如果不需要,请不要在 MySQL 之上创建 REST API。尽量保持简单。

    话虽如此,尽量避免微服务之间的 RPC。改为使用消息传递,以便服务可以自治。我们不希望它们依赖于可能未运行的服务或其他任何东西。定义限界上下文并让微服务存在于这些限界上下文中,使它们成为特定业务问题的所有者。

    从那时起,您可以为每个微服务选择所需的任何存储、协议、安全等。消息系统选择一个选项可能更容易。虽然不是必需的,但它确保您无需在各处实现网关即可从一个网关转换到另一个网关。

    【讨论】:

    • + 1 for ...尽量避免微服务之间的 RPC。改为使用消息传递,以便服务可以自治。
    • 补充一点,虽然我 100% 同意你的观点,但微服务 (Fowler) 的官方定义表明微服务之间的通信应该实际上由 调解“...轻量级机制,通常是 HTTP 资源 API”。这是 IMO 将微服务与 SOA 区分开来的原因之一。
    猜你喜欢
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    相关资源
    最近更新 更多