【问题标题】:Order of messages are not preserved in rsyslog-omkafka modulersyslog-omkafka 模块中不保留消息的顺序
【发布时间】:2019-06-18 17:08:07
【问题描述】:

架构: 文件 -> imfile -> omkafka -> 具有单个分区的 Kafka 主题 -> 消费者

文件的内容是静态的。它根本没有改变。我假设 omkafka 以有序的方式将数据推送到 kafka 代理。但事实并非如此。

有没有办法配置rsyslog按顺序发送文件?

如果生产者将消息推送到单个分区,则消息的顺序由 Kafka 保证。因此,似乎 omkafka 模块的顺序搞砸了。

【问题讨论】:

  • 除非连接丢失,否则不应重新排序,因为您拥有现代版本的 librdkafka (>=v0.11.6)。
  • 我确实有最新版本的 librdkafka。我能够通过 1 获得正确的排序。将最大飞行中请求配置为 1。我后来还发现我的消费者是多线程的;所以我将它配置为使用单线程。我能够保留消息的顺序。

标签: apache-kafka rsyslog


【解决方案1】:

Omkafka 在幕后使用 librdkafka 尚不支持一次性交付 (https://github.com/edenhill/librdkafka/issues/1308)。一旦这个问题得到解决,我会再次检查。

【讨论】:

  • 即将发布的 librdkafka v1.0.0 增加了对幂等生产者的支持,从而保证了排序。
猜你喜欢
  • 2017-07-06
  • 2015-09-06
  • 1970-01-01
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多