gpt4 book ai didi

java - LMAX Disruptor 如何解决典型的消息代理问题?

转载 作者:行者123 更新时间:2023-12-03 01:29:08 25 4
gpt4 key购买 nike

我对 LMAX Disruptor理解它是一个 JAR,充满了速度惊人、并发的 Java 代码,每秒可实现 2000 万条消息的吞吐量(如果使用正确)。

我们目前的 ActiveMQ 实例对于我们需要的速度来说速度很慢,大约每秒 400 条消息。我想知道我们是否会从重构代码以使用 LMAX 中受益,但有以下担忧:

  • 如何拥有 1 个发布商和多个(竞争性)消费者
  • LMAX 如何存储/容纳其消息?内存中?
  • 故障转移 - LMAX 是否有故障转移协议(protocol)/机制
  • 磁盘 I/O - LMAX 能否将未使用的消息保存到磁盘并在稍后恢复它们?

而且,如果我对所有这些都完全没有根据,并且似乎完全误解了 LMAX 干扰器的使用,那么有人可以提供何时使用它的具体示例吗?提前致谢!

最佳答案

Disruptor 并不是跨进程或跨服务器消息传递系统的直接替代品。它被设计为进程内跨线程消息传递系统。认为它对于替换通常在它们之间有队列的处理线程之间的依赖关系图很有用。这使得它对于在线程之间使用管道或多播模式的设计非常有用。 ActiveMQ 有不同的用途。

基于 Disruptor 的系统中的线程更像是长期存在的 Actor,它们通过 Disruptor 传递事件来进行通信。

有关一些好的示例,请查看源代码中提供的性能测试。

关于java - LMAX Disruptor 如何解决典型的消息代理问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com