2011-03-22 52 views
0

我正在爲將使用RabbitMQ收集日誌消息的應用程序創建日誌記錄工具。我試圖決定如何構建消息的主題字段。我能做到這一點RabbitMQ主題中的字段順序是否重要?

一種方法是這樣的:

<instance uuid>.<major component>.<minor component>.<log level> 

或另一種選擇是這樣的:

<log level>.<major component>.<minor component>.<instance uuid> 

我還應該採取任何性能或其他方面的考慮作出決定時考慮到按照主題中的字段順序?或者它大多是任意的?據我所知,如果我打算使用主題交換,他們同樣容易與使用通配符匹配。

回答

1

我認爲訂單可能不像複雜性(週期分隔符的數量)以及您的代理將具有的綁定數量那麼重要。綁定中使用的通配符數量也會影響它。但問題是,所有這些都會影響性能?

如果你只有幾百個隊列綁定這個方案,我不會擔心。 Rabbit團隊剛剛發佈了一個新的blog post,他們在主題交換中的消息路由方面所做的工作很明顯,並且很明顯,它經過了大量優化。鑑於該博客文章中的最後一張圖表,我至少會安裝並運行Rabbit MQ 2.4.0作爲您的代理。

最後,我建議運行一些非常現實的浸泡/性能測試,使用您的兩個建議順序,並看看它們是否與您的應用程序執行不同。這是查明訂單是否會影響您的系統的最可靠的方法。

0

我認爲唯一重要的領域是如果您需要使用#通配符進行路由和交換到隊列。

如果您ABCD和afgh那麼你可以做的事情就好了。#

但如果你使用DACB和hagf那麼你就需要做一些像* .A。#,你可能想嘗試# .a。#這將不會達到你的期望。

  • 比#更快,並且一個通配符匹配比兩個更快。

在另一方面,長非通配符匹配的列表可能會比你想象的更快。基準測試的時間。

相關問題