apache-kafka - 如何用 Aeron 替换 Kafka

标签 apache-kafka aeron

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

最佳答案

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

Kafka 延迟在 order of milliseconds 内而 Aeron 延迟通常是测量 in microseconds .

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

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

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

发布商

  • ArchivingMediaDriver - 此组件运行 Aeron MediaDriver(处理通过网络发送/接收消息)和 Archive(允许您记录和保存)重播流。
  • 发布,用于发送由文件馆记录的消息。请参阅AeronArchive.addRecordedPublication

订阅者

  • MediaDriver - 该组件处理通过网络发送/接收消息。
  • 一个订阅,它从记录的消息流中的特定位置重放数据。请参阅 AeronArchive.replay

aeron-samples 中有这样的例子。

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

值得注意的是,real-logic 确实提供了商业支持。

关于apache-kafka - 如何用 Aeron 替换 Kafka,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61560332/

相关文章:

java - 对使用 kstream 连接的 kafka 拓扑进行单元测试

network-programming - Aeron 可以处理的最大消息是什么?

rust - 如何将Aeron驱动程序JAR嵌入Rust程序中,并在以后启动它?

java - 如何在 Aeron 库中创建多目标转换

spring - 单个微服务中是否可以有多个流?

apache-kafka - 过期的 Apache Kafka 消息没有被删除

拍摄大快照时 Aeron 集群被阻塞

aeron - agrona 中的 OneToManyRingBuffer 实现

node.js - Apache Kafka 2.3 + Node.js 10.15 + 消费者 + 生产者

apache-kafka - 在 Kafka 配置中选择正确的清理策略