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

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.

主站蜘蛛池模板: 泰宁县| 华亭县| 唐海县| 万安县| 金坛市| 深水埗区| 皮山县| 海门市| 新源县| 上林县| 肃南| 易门县| 南汇区| 扶绥县| 拜城县| 南京市| 遂平县| 岐山县| 大洼县| 莒南县| 岑巩县| 新平| 河曲县| 金乡县| 阿拉善右旗| 韩城市| 巴彦淖尔市| 达孜县| 平昌县| 乐业县| 金乡县| 镇坪县| 来凤县| 宁夏| 台江县| 蒙自县| 西平县| 麻城市| 安远县| 汝州市| 焦作市|