前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kafka 消息的生产消费方式

Kafka 消息的生产消费方式

作者头像
dys
发布2018-04-04 11:42:35
1.3K0
发布2018-04-04 11:42:35
举报
文章被收录于专栏:性能与架构

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

整体结构

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

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

每个 partition 有两个角色,leaderfollower

leader 负责所有的读写请求

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

消息的生产

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

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

消息的读取

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

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

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

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

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

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

小结

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 整体结构
  • 消息的生产
  • 消息的读取
  • 小结
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档