文章 五月 25, 2023

kafka(二) 生产者

文章字数 1.1k 阅读约需 1 mins. 阅读次数 0

kafka(二) 生产者

Kafka发送消息的主要步骤

  1. 序列化ProducerRecord.

  2. 如果ProducerRecord中指定了Partition.则分区器(Partitioner)不做任何事情.否则分区器根据消息的key得到一个Partition。

  3. 消息被添加到相应的batch中,独立的线程将这些batch发送到broker上.

  4. broker收到消息会返回一个响应.

    成功写入返回RecordMetaData对象,包含了Topic信息、Patition信息、消息在Partition中的Offset信息.

    失败会返回错误. 生产者收到失败会尝试重试,达到指定重试次数还没成功,将抛出异常.

kafka发送消息

生产者发送消息的三种方式

  • 同步发送(At least one) :

    以同步的方式发送消息时,一条一条的发送,对每条消息返回的结果判断, 可以明确地知道每条消息的发送情况,但是由于同步的方式会阻塞,只有当消息通过get返回future对象时,才会继续下一条消息的发送.

    消息绝不会丢,但可能会重复传输.

  • 异步发送(At most once):

    消息可能会丢,但绝不会重复传输

0%