2012-09-11 68 views
2

我想實現以下,交流與消息優先級

  • 消息與消息優先級到達消息代理
  • 他們發現他們的方式進入不同的隊列,根據他們的消息優先

因此Q1具有優先級爲1的消息 Q2具有優先級爲2的消息依次類推......

有沒有辦法讓消息B roker流程Q1比其他流程更快。

  • 隊列之間有優先權嗎?
  • Q1的處理優先級高於Q2,還是更好的處理Q1的其他隊列正在處理?
  • 交換本身是否可以成爲一個優先級隊列,然後反饋給其他隊列?
  • 我看到有可能通過插件擴展默認交換,那裏是否有任何已經實現了上述要求的東西?

這是否可行?或者這是否違背消息經紀人的基本理念?

使用優先消息時是否有鏈接到最佳實踐?

我在8月28日的Qpid nabble論壇上發佈了這條消息,但是'這個帖子還沒有被郵件列表接受'。

謝謝你的時間。

回答

1

在qpid中,您可以將隊列定義爲「優先隊列」。

session.createQueue(queueName;{create:always, node:{type:queue, 
        x-declare:{arguments:{'x-qpid-priorities':3}}}}) 

在一個優先級隊列,具有較高優先級的消息將蛙跳在具有較低優先級的消息,將被較早拾取。您無需爲每個優先級別定義單獨的隊列。

x-qpid-priorities參數指定 隊列支持多少個不同的優先級。

請注意,基於優先級的跳過只適用於消費隊列中的消息。瀏覽不尊重優先級,你會看到排隊順序的消息。

爲每個優先級實施單獨的隊列並不是很有用,但是如果你堅持這樣做,你將不得不自己管理基於優先級的消耗。您可以實現消費者檢查高優先級隊列中的消息,然後僅在第一個隊列爲空時才檢查低優先級隊列。