1、kafka概述
1.1 定义:
kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。
1.2.1 应用场景
异步处理(解耦):
比如发送短息:填写注册信息 -》 数据入库 -》同时调用发送信息接口 -》不等待发送结果返回,就返回注册成功提示。
削峰填谷:
解耦
可恢复性
缓冲
灵活性(分布式,横向扩容,下线节点)& 峰值处理能力
异步通信
1.2.2 消息队列的两种模式
点对点模式(消费者主动拉取数据,数据消费后清除)
发布/订阅模式(消费者主动拉取数据,消费者需要频繁访问队列,如果没有数据处理,相对比较浪费消费者资源)
消费者自己决定消费速度
减轻broker的压力
1.3 kafka 架构
注册中心(zookeeper):offset消息偏移量,0.9版本offset存储在zk,之后存储在broker的offset中
生产者(producer):生产数据(message)到 topic的一个partition,并备份
kafka 集群(cluster)节点(broker)
主题(topic -- leader/follower)
消息(message)
分区(partition)提高并发
消费者(consumer):消费topic的数据
消费者组(consumer group):某一个分区只能被某一个消费者组中的一个消费者消费;多个消费者,提高消费效率;
消费者数量大于主题分区数量,会造成多出的消费者资源浪费
网友评论