2012-04-26 76 views
3

我被告知了一段時間關於LMAX干擾程序以及它與標準消息隊列的性能比較。我下載了最新版本,並且看到它是一個普通的JAR,其中包含許多類和類型,都圍繞着它的超快RingerBuffer對象。最終,在一天結束時,一個基於隊列的JMS提供者只是歸結爲管理Java隊列對象(或更可能是併發隊列)的很多代碼。所以在這方面,我看到了LMAX Disruptor和JMS提供者(或者說,它是內部隊列)之間的比較。LMAX干擾器vs JMS提供程序

但是,JMS提供商遠遠超過了幾個隊列。這是一個完整的中間件應用程序,用於處理來自消費者和生產者的消息。我想知道在LMAX土地上是否有JMS提供商相當於?

以與其他JMS代理程序類似的方式連接到「Disruptor Broker」並讀/寫消息是很好的。

這樣的事情是否存在,還是我在這裏的方式?

回答

5

主要區別在於Disruptor被設計爲在相同的過程中工作。爲什麼?出於性能原因(簡短答案)。較長的答案是,如果您不小心使用JMS接口,套接字連接,鎖定和多線程的額外開銷將會有更高的開銷,這使得Disruptor變得更加糟糕。

一個快速的JMS服務每秒可以處理超過20,000條消息,但是破壞者的設計可以處理2000萬個以上的消息速率。爲了達到這個目的,這意味着你不能做某些JMS所假設的事情。 (見上)