2015-01-06 38 views
10

我已經開始研究一個新項目,並且我們被要求將系統構建爲一系列微服務,使用RabbitMQ作爲它們之間的通信層。RabbitMQ的典型版本控制策略是什麼?

開發REST API時,我傾向於使用接受HTTP頭來控制版本控制,並且我發現您可以使用RabbitMQ中的頭交換以類似的方式路由消息。然而,由於這純粹是一個內部消息傳遞系統,我不確定一個標題交換的增加的複雜性真的值得一段時間嗎?

版本化RabbitMQ消息的典型設置是什麼?在我看來,有三種選擇:

  1. 每個版本的新虛擬主機
  2. 每個Exchange在名稱中的版本(例如MyExchange-V1,MyExchange-V2,...等等。)
  3. 隊列版本
  4. 路由密鑰版本(myroute-2.1。*)
  5. 使用頭交換

感謝您的任何輸入。

+0

您最終選擇了什麼? – Pupsik

回答

1

我與路由密鑰版本系統2個主要理由去:

消費者將能夠綁定(通過課程的隊列)通過多個綁定自己的兼容版本。使用語義版本(http://semver.org/)標準可以通過asterix和hash標準在這裏使用。

您不一定會使用Rabbitmq,因爲路由密鑰是AMQP的標準功能