如何用 Aeron 替换 Kafka

use*_*562 2 apache-kafka aeron

目前我们生产环境的交易系统使用的是Kafka。由于Kafka延迟太高,我们希望用Aeron替代Kafka。如何正确使用Aeron?

小智 5

Aeron 并不是 Kafka 的现成替代品,尽管它确实提供了允许您复制大部分功能的原语。

Kafka 延迟以毫秒为单位,而 Aeron 延迟通常以微秒为单位

您到底需要在 Aeron 中构建什么,很大程度上取决于您的用例。

Kafka 的主要用途之一是作为持久队列。

为单个发布者用例构建简单的持久队列。你需要:

出版商

  • ArchivingMediaDriver- 该组件运行 Aeron,MediaDriver它处理通过网络发送/接收消息,并Archive允许您记录和重放流。
  • APublication发送由档案馆记录的消息。看AeronArchive.addRecordedPublication

订阅者

  • MediaDriver- 该组件处理通过网络发送/接收消息。
  • Susbcription从记录的消息流中的特定位置重放数据。看AeronArchive.replay

aeron-samples 中有这样的例子。

通过让发布者通过多播/MDC 发送消息并让订阅者使用ReplayMerge从录制流无缝转换到直播流,可以进一步减少延迟。

值得注意的是,真实逻辑确实提供了商业支持。