目前我们生产环境的交易系统使用的是Kafka。由于Kafka延迟太高,我们希望用Aeron替代Kafka。如何正确使用Aeron?
最佳答案
Aeron 并不是 Kafka 的现成替代品,尽管它确实提供了允许您复制大部分功能的原语。
Kafka 延迟在 order of milliseconds 内而 Aeron 延迟通常是测量 in microseconds .
您到底需要在 Aeron 中构建什么,很大程度上取决于您的用例。
Kafka 的主要用途之一是作为持久队列。
为单个发布者用例构建简单的持久队列。您需要:
发布商
ArchivingMediaDriver
- 此组件运行 AeronMediaDriver
(处理通过网络发送/接收消息)和Archive
(允许您记录和保存)重播流。发布
,用于发送由文件馆记录的消息。请参阅AeronArchive.addRecordedPublication
。
订阅者
MediaDriver
- 该组件处理通过网络发送/接收消息。- 一个
订阅
,它从记录的消息流中的特定位置重放数据。请参阅AeronArchive.replay
。
aeron-samples 中有这样的例子。
通过让发布者通过多播/MDC 发送消息并让订阅者使用 ReplayMerge
从录制流无缝过渡到直播流,可以进一步减少延迟。
值得注意的是,real-logic 确实提供了商业支持。
关于apache-kafka - 如何用 Aeron 替换 Kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61560332/