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

举报
JavaEdge 发表于 2021/06/04 01:06:15 2021/06/04
【摘要】 发送消息的流程 Producer根据指定的partition方法(round-robin、hash等),将消息发布到指定topic的partition里面kafka集群接收到Producer发过来的消息后,将其持久化到硬盘,并保留消息指定时长(可配置),而不关注消息是否被消费Consumer从kafka集群pull数据,并控制获取消息的offset 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可以调用回调函数获取发送结果

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

文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。

原文链接:javaedge.blog.csdn.net/article/details/110555727

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。