Apache kafka 卡夫卡多制作人对同一主题的写作——消息和数据突发的排序

Apache kafka 卡夫卡多制作人对同一主题的写作——消息和数据突发的排序,apache-kafka,Apache Kafka,我想了解卡夫卡。假设我有多个制作人,每个人都在写同一个主题。 (由于设计原因,我们不能有更多的主题,我们使用avro进行序列化)因为我们的消息太大,我们需要将其分成小部分,然后发送给卡夫卡 在这种情况下,来自不同生产商的MESAGE可以混合使用吗? 我如何避免这种情况?有什么想法吗 另外,我们有巨大的数据爆炸,比如2分钟内会有1000条消息,接下来5到7分钟内几乎没有消息,在这种情况下我们能做什么 因为我们的信息太大了,我们需要把它分成几个小部分,然后发送给卡夫卡 你知道吗?你运行了基本测试,但

我想了解卡夫卡。假设我有多个制作人,每个人都在写同一个主题。 (由于设计原因,我们不能有更多的主题,我们使用avro进行序列化)因为我们的消息太大,我们需要将其分成小部分,然后发送给卡夫卡

在这种情况下,来自不同生产商的MESAGE可以混合使用吗? 我如何避免这种情况?有什么想法吗

另外,我们有巨大的数据爆炸,比如2分钟内会有1000条消息,接下来5到7分钟内几乎没有消息,在这种情况下我们能做什么

因为我们的信息太大了,我们需要把它分成几个小部分,然后发送给卡夫卡

你知道吗?你运行了基本测试,但遇到了一些问题?你试过调整缓冲器吗?我很确定卡夫卡可以处理相对较大的消息(几十兆字节),而不会有太多麻烦。事实上,与大量的小消息相比,您可能会获得更好的吞吐量

另外,我们有巨大的数据爆炸,比如2分钟内会有1000条消息,接下来5到7分钟内几乎没有消息,在这种情况下我们能做什么

现代服务器机器上的单个kafka代理每秒可以轻松处理约20k-40k条消息/(批量处理1000条消息,每个2k大小,同步模式)。我看不出有什么问题

来自不同制作人的消息是否可以混合

是的,它们可能混合在一起。事实上,卡夫卡协议并没有很好地定义这一时刻,特定的实现可能会改变这种行为,因此要获得稳定的解决方案,请查看下面的部分

我如何避免这种情况

卡夫卡有一个分区的概念:默认情况下,每个主题有一个分区,每个分区可以被认为是一个并行单元。设置适当的分区器,使每个生产者以隔离的方式写入自己的分区