我开始研究一个新项目,并且我们被要求将系统构建为一系列微服务,使用RabbitMQ作为它们之间的通信层。
在开发REST API时,我倾向于使用accept HTTP标头来控制版本控制,我发现你可以在RabbitMQ中使用标头交换来以类似的方式路由消息。但是,由于这纯粹是一个内部消息系统,我不确定标头交换的增加复杂性是否真的值得一试?
对RabbitMQ消息进行版本控制的典型设置是什么?在我看来,选项是:
感谢您提供的任何意见。
答案 0 :(得分:2)
我选择路由密钥版本系统有两个主要原因:
消费者将能够通过多个绑定将(通过队列当然)绑定到兼容版本。使用语义版本(http://semver.org/)标准将通过asterix和哈希标准在此处使用。
您不必使用Rabbitmq作为路由密钥是AMQP的标准功能