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

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.

主站蜘蛛池模板: 綦江县| 西宁市| 深水埗区| 凉城县| 西平县| 浪卡子县| 葵青区| 突泉县| 绿春县| 文昌市| 民乐县| 维西| 凉城县| 五大连池市| 青神县| 浦北县| 海口市| 耒阳市| 桐柏县| 桃源县| 平塘县| 遂宁市| 左贡县| 陇西县| 南康市| 抚松县| 肃宁县| 乌什县| 灵武市| 通渭县| 安龙县| 桂平市| 新宁县| 和静县| 东辽县| 神农架林区| 霸州市| 繁昌县| 青浦区| 沂水县| 江城|