专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Kafka 消息的生产消费方式,Kafka 消费者,Kafka 消息读取,消息发送

主要内容: 1. kafka 整体结构 2. 消息的生产方式 3. 消息的读取方式

整体结构

在 kafka 中创建 topic(主题),producer(生产者)向 topic 写入消息,consumer(消费者)从 topic 读取消息

109_1.png

kafka 是集群结构,每个主题会分成多个 partition(部分),每个 partition 会被均匀的复制到不同服务器上,具体复制几份可以在配置中设定

109_2.png

每个 partition 有两个角色,leaderfollower

leader 负责所有的读写请求

follower 负责容灾,当 leader 出现问题时,自动选出一个新的 leader

消息的生产

producer 向主题中写入数据,其实是向某个 partition 写入,具体向哪个 partition 写入,由生产者决定,例如最简单的方式就是轮流写

109_3.png

消息写入 partition 的方式是顺序追加,为每条消息设置一个序号 offset

109_4.png

消息的读取

consumer 是一个 consumer group(消费者组)的概念

一个组中包含一个或者多个消费者,这一个组来订阅一个主题,不是单个的 consumer 直接订阅

109_5.png

当主题中产生新的消息时,这个消息会被发送到组中的某一个消费者上,如果一个组中有多个消费者,那么就可以起到负载均衡的作用

组中的消费者可以是一台机器上的不同进程,也可以是在不同服务器上

109_6.png

109_7.png

读取消息时,消费者自己维护读取位置,kafka不负责,消费者自己决定从哪个 offset 开始读取

109_8.png

消息被读取后,不会被删除,所以可以重复读取,kafka会根据配置中的过期时间来统一清理到期的消息数据

小结

Kafka 中包含多个 主题,每个 主题 被分成多个 部分,每个 部分 被均匀复制到集群中的不同服务器上,分为 leader 和 follower,leader 负责处理读写操作,由 follower 选举产生

生产者 向 主题 中的某个 部分 顺序追加消息记录

消费者 是一个组的概念,包含1个或多个,一起消费某个 主题,组中的不同 消费者 负责 主题 中的不同 部分,分担压力,提高读取消息的效率,并自己决定从哪儿开始读取

文章永久链接:https://tech.souyunku.com/12189

未经允许不得转载:搜云库技术团队 » Kafka 消息的生产消费方式,Kafka 消费者,Kafka 消息读取,消息发送

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们