Kafka 消息分块

问题描述 投票:0回答:2

我对 Apache Kafka 非常陌生,我希望在发送给消费者时将我的消息分成多个块。当消息字节大于最大请求大小时,我希望将它们分成块。

所以我实现了它,但是我想保证消息以相同的顺序发送。我怎样才能实现这个目标?如果您想查看我的代码,请点击以下链接:https://github.com/beyzayildirim137/msgChunking.git

希望有人能帮忙。

apache-kafka
2个回答
2
投票

理想情况下,Kafka 是为较小的消息而设计的,但如果您想使用它来流式传输大型消息,则可以使用以下策略(注意:根据用例可以有其他策略):

  • 将消息分成更小的块
  • 确保给定消息的所有块都发布到同一分区,这将确保排序(从 github 上的代码看来,您已经使用相同的 UUID 作为给定消息的所有块的键)
  • 在最后一个块上,在生成时在标头中添加一些表示消息结尾的元数据,以便消费者可以知道这是最后一个块,并且可以重建消息。 (从 github 代码来看,消费者代码似乎很不稳定,因为您假设 1000 毫秒轮询窗口中传入的所有消息都将包含所有块,但情况可能并非如此)

我希望这能为您处理更大的消息提供一些指导。


0
投票

如何对分块消息执行紧凑操作?

© www.soinside.com 2019 - 2024. All rights reserved.