如何用 Aeron 替换 Kafka
How to replace Kafka with Aeron
目前我们生产环境的交易系统使用的是Kafka。因为Kafka延迟太高,我们希望用Aeron替代Kafka。如何正确使用Aeron?
Aeron 并不是 Kafka 的开箱即用替代品,尽管它确实提供了允许您复制大部分功能的原语。
Kafka 延迟在 order of milliseconds whereas Aeron latencies are typically measured in microseconds。
您究竟需要在 Aeron 中构建什么在很大程度上取决于您的用例。
Kafka 的主要用途之一是用作持久队列。
为单个发布者用例构建一个简单的持久队列。你需要:
出版商
ArchivingMediaDriver
- 该组件运行,Aeron MediaDriver
通过网络处理 send/receiving 消息,Archive
允许您录制和重播流。
- A
Publication
发送要由存档记录的消息。参见 AeronArchive.addRecordedPublication
。
订阅者
MediaDriver
- 该组件通过网络处理 send/receiving 消息。
- A
Susbcription
从记录的消息流中的特定位置重播数据。参见 AeronArchive.replay
。
aeron-samples 中有这方面的例子。
通过让发布者通过 multicast/MDC 发送消息并让订阅者使用 ReplayMerge
从录制流无缝过渡到实时流,可以进一步减少延迟。
值得注意的是,实逻辑确实提供商业支持。
目前我们生产环境的交易系统使用的是Kafka。因为Kafka延迟太高,我们希望用Aeron替代Kafka。如何正确使用Aeron?
Aeron 并不是 Kafka 的开箱即用替代品,尽管它确实提供了允许您复制大部分功能的原语。
Kafka 延迟在 order of milliseconds whereas Aeron latencies are typically measured in microseconds。
您究竟需要在 Aeron 中构建什么在很大程度上取决于您的用例。
Kafka 的主要用途之一是用作持久队列。
为单个发布者用例构建一个简单的持久队列。你需要:
出版商
ArchivingMediaDriver
- 该组件运行,AeronMediaDriver
通过网络处理 send/receiving 消息,Archive
允许您录制和重播流。- A
Publication
发送要由存档记录的消息。参见AeronArchive.addRecordedPublication
。
订阅者
MediaDriver
- 该组件通过网络处理 send/receiving 消息。- A
Susbcription
从记录的消息流中的特定位置重播数据。参见AeronArchive.replay
。
aeron-samples 中有这方面的例子。
通过让发布者通过 multicast/MDC 发送消息并让订阅者使用 ReplayMerge
从录制流无缝过渡到实时流,可以进一步减少延迟。
值得注意的是,实逻辑确实提供商业支持。