卡夫卡的信息构成



kafka消息具有:

键,值,压缩类型,头(键值对,可选(,分区+偏移量,时间戳

Key被散列到分区,以找到生产者将写入的分区。

那么,为什么我们需要分区作为消息的一部分呢。

此外,生产者如何知道偏移量,因为偏移量看起来更像是卡夫卡服务器的属性?它不会导致服务器和生产者之间的耦合吗?

如果多个制片人正在为一个主题写作,因为他们发送的抵消可能会发生冲突,这将如何工作?

为什么我们需要分区作为消息的一部分。

客户端可以选择设置记录分区。协议中仍然需要分区,因为密钥没有在服务器端进行哈希处理,然后重新路由。

生产者如何知道偏移量,因为偏移量看起来更像是kafka服务器的属性?

生产者需要回调以获取OffsetMetadata,但不知道何时发送批

这不会导致服务器和生产者之间的耦合吗?

是吗?这是Kafka协议。消费者也是";"耦合";

多个生产者正在为一个主题写作,因为他们发送的偏移量可能会冲突?

如果max.inflight.connections大于1并且已启用引退,则是的,批处理可能会重新排列,但发送请求最初是按顺序排列的,客户端不会设置记录偏移量,代理会设置。

最新更新