Kafka 消息的生产消费方式

2017-09-19 21:06 阅读 238 views 次 评论 0 条

Kafka 消息的生产消费方式

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

整体结构

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

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

每个 partition 有两个角色,leader follower

leader 负责所有的读写请求

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

消息的生产

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

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

消息的读取

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

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

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

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

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

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

小结

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

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

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


版权声明:本文版权由木秀林网所有,转载请保留链接:Kafka 消息的生产消费方式
分类:Kafka解析 标签:

发表评论


表情