微服务之间基于消息的通信

时间:2017-06-15 15:48:43

标签: java activemq publish-subscribe microservices

我想构建一些使用消息代理发送和接收消息的微服务: ActiveMQ 。现在我正在探索消息类型的选项(即Stringbyte[]对象类型):

  1. XML / JSON 格式发布消息,一旦收到它们就会被解析
  2. XML / JSON 格式发布消息,使用架构将其转换为对象
  3. 创建域对象并添加到微服务依赖项以进行数据交换
  4. 这是我看过的3个选项,我倾向于选择1,原因如下:

    1. 当需要添加新字段时,只需要更改需要此字段的微服务。
    2. 可以在不破坏现有通信的情况下部署不同版本的微服务
    3. 微服务保持解耦
    4. 然而,这引发了解析和提取非常容易出错的数据的问题。

      我想知道是否有其他人做过类似的设计,可以分享他们的经验并提出解决方案。此外,如果有更好的方法来实现使用消息传递和队列的微服务之间的通信。

1 个答案:

答案 0 :(得分:0)

这是我通常采用的方法:对于每种消息类型,一个类负责编码消息(生成JSON / XML / whatnot),验证它并解析它。类进入一个库,然后在发送消息的服务和接收它的服务上使用它。