Kafka生产者消息发布模式源码解析

2021-02-23 15:06:29 浏览数 (1)

发送消息的流程

  • Producer根据指定的partition方法(round-robin、hash等),将消息发布到指定topic的partition里面
  • kafka集群接收到Producer发过来的消息后,将其持久化到硬盘,并保留消息指定时长(可配置),而不关注消息是否被消费
  • Consumer从kafka集群pull数据,并控制获取消息的offset

1 同步发送模式源码

2 异步发送模式源码流程

3 总结

3.1 同步发送模式特点

  • 同步的向服务器发送RPC请求进行生产
  • 发送错误可以重试
  • 可以向客户端发送ack

3.2 异步发送模式特点

  • 最终也是通过向服务器发送RPC请求完成的(和同步发送模式一样)
  • 异步发送模式先将一定量消息放入队列中,待达到一-定数量后再一起发送;
  • 异步发送模式不支持发送ack,但是Client可以调用回调函数获取发送结果

所以,性能比较高的场景使用异步发送,准确性要求高的场景使用同步发送。

0 人点赞