不久前,有人告诉我有关LMAX干扰器以及它与标准消息队列相比性能如何的信息。我下载了最新版本,发现它是一个普通的JAR,其中包含许多类和类型,这些类和类型都围绕其超快速的RingerBuffer对象运行。

最终,归根结底,基于队列的JMS提供程序将归结为管理Java队列对象(或更可能是并发队列)的大量代码。因此,在这方面,我看到了LMAX Disruptor与JMS提供程序之间的比较(或更确切地说,它是内部队列)。

但是,JMS提供者不只是几个队列。它是一个完整的中间件应用程序,用于处理与消费者和生产者之间的消息传递。我想知道LMAX领域是否有等效的JMS提供程序?

以与任何其他JMS代理类似的方式连接到“Disruptor Broker”,并向其读取消息/从中写入消息,将是很好的。

是否存在类似的东西,或者我在这里偏离了基地?

最佳答案

主要区别在于Disruptor设计为在同一过程中工作。为什么?出于性能考虑(简短答案)。更长的答案是,如果您不注意使用JMS接口,套接字连接,锁定和多个线程的额外开销,则开销会高得多,这使Disruptor显得相形见war。

快速的JMS服务每秒可以处理20,000条以上的消息,但该干扰源的设计目的是要处理每2000万条以上的消息速率。为此,这意味着您无法执行JMS认为可以的某些事情。 (往上看)

10-08 14:20