官术网_书友最值得收藏!

Message producers

In Kafka, the producer is responsible for sending data to the partition of the topic for which it is producing data.

The producer generally does not write data to partitions, it creates write requests for messages and sends them to the leader broker. Partitioner calculates the hash value of the message, which helps the producer to choose which partition should be selected.

The hash value is generally calculated by the message key that we provide when writing the message to a Kafka topic. The message with a null key will be distributed in a round-robin fashion across partitions to ensure even distribution of messages. In Kafka, each partition has a leader and each read write request goes through the leader only. So a request to write messages to a partition of a topic will go through the leader broker. The producer waits for an acknowledgement of messages depending on the setting. Generally, it waits until the replication for a particular message is successfully acknowledged.

Remember that until and unless all replicas have been acknowledged to commit the message, it will not be available to read. This setting is the default and ensures that a message cannot be lost if a leader broker fails.

However, you can set the configuration for acknowledgement to 1, which assumes that if a message is committed by the leader, it will be available to read and the Kafka producer can produce the next messages. This setting is dangerous because, if brokers fail before other replicas commit the message, the message will be lost. This leads to less durability but high throughput.

However, it's better to compromise on throughput if your consumer system does not want to lose a single message as part of the application. We will talk in detail about the producer in the next chapter.

主站蜘蛛池模板: 修文县| 灵川县| 东光县| 慈溪市| 沛县| 平昌县| 长岭县| 志丹县| 北票市| 花垣县| 汾西县| 湖北省| 英超| 东山县| 宁南县| 开远市| 华池县| 徐水县| 高平市| 同江市| 汕头市| 贵溪市| 大安市| 桃园县| 博湖县| 金秀| 镇坪县| 石狮市| 辽源市| 哈密市| 天全县| 东明县| 温州市| 改则县| 海南省| 克拉玛依市| 宁武县| 西藏| 永州市| 邹平县| 正宁县|