栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kafka-1-架构

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kafka-1-架构

一,Kafka的组成 1,Producer

Kafka常被用做消息引擎,是一个高并发、高吞吐的消息读写系统,Producer是将消息从外部写入Kafka系统的组件。

任何外部系统生成的消息都要通过Producer才能将消息写入Kafka。

常见的场景有:

通过Canal、Debezium等实时订阅Mysql的日志,解析为固定格式的文本消息,通过Kafka提供的Producer API写入Kafka。业务系统打印的日志通过日志系统进行收集,收集之后调用Producer API写入Kafka。 2,Consumer

仅仅把消息存储在文件系统,是远远不够的,还需要提供一种读取消息的能力,Kafka通过Consumer对外提供消息读取。

外部系统想要读取Kafka存储的消息,调用Consumer API即可。

Consumer可能有很多个,还可以根据需要对多个Consumer进行分组,称之为消费者组。

消费者组是Kafka非常巧妙的设计,通过消费者组将消息引擎的两种模式融合到一起,即提供点对点的生产-消费,也提供发布-订阅这种多对多的功能。

总结起来:

1,通过消费者组实现发布-订阅,一个消费者组可以订阅多个Topic,多个不同的消费者组可以订阅同一个Topic2,通过消费者实现点对点消费模式,一个Topic的一个分区只能被一个消费者组的某一个消费者消费 3,Kafka集群

Kafka是一个C/S架构,Producer和Consumer消费者是C,Kafka集群是S。

Kafka集群相当于Producer和Consumer之间的中介,Producer将消息存放到Kafka集群,Consumer到指定位置取读取消息,Producer和Consumer不直接接触,就是所谓的解耦。

Kafka集群的主要工作是:

接收来自Producer的消息保存请求根据消息的主题和分区将请求转发到分区Leader分区Leader将消息Append到文件系统分区Follower从Leader备份消息协调Producer端的事务,保证同一个事务的写入的原子性接收来自Consumer的消息读取请求根据Consumer订阅的消息的分区数和Consumer的个数,将消息分区与Consumer进行绑定,一个分区最多被一个Consumer消费,但一个Consumer可能消费多个分区记录各个消费者组对各个分区的消息的消费进度,通过这个进度即offset控制消息被消费情况

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703935.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号