【摘要】 1、基础理论1.1、什么是消息队列 Message Queue 消息的传输过程中保存消息的容器 应用场景:程序解耦、异步消息、流量削锋…1.2、消息队列的两种模式 点对点模式(消费者主动拉取数据,拉取成功后删除队列上的数据) 一个消息 只能有一个消费者可以消费 发布/订阅模式(消费者消费数据之后,队列上的数据不会被马上清除)1.3、高可用原理 Hig…
1、基础理论
1.1、什么是消息队列
Message Queue
消息的传输过程中保存消息的容器
应用场景:程序解耦、异步消息、流量削锋…
1.2、消息队列的两种模式
点对点模式(消费者主动拉取数据,拉取成功后删除队列上的数据)
一个消息 只能有一个消费者可以消费
发布/订阅模式(消费者消费数据之后,队列上的数据不会被马上清除)
1.3、高可用原理
High Availability
目标:减少停工时间
策略:消除单点故障
工作模式
2、Kafka概述
基于发布/订阅模式的 分布式的 消息队列
主用场景:大数据实时处理、流量削峰
英文名 译名 说明
Producer 生产者 生产消息
Consumer 消费者 消费消息
Consumer Group 消费者组 由多个Consumer组成
是逻辑上的一个订阅者
Broker 经纪人 一台Kafka服务器就是一个Broker
一个集群由多个Broker组成
一个Broker可以容纳多个topic的partition
Topic 主题 可以理解为一个存放消息的逻辑上的队列
一个topic可以分布到多个Broker
Partition 分区 一个topic可以分存多个partition
每个partition是一个有序的队列
Replica 复制品 数据副本
Leader 首领 对接生产者和消费者
Follower 追随者 实时同步leader的数据
leader故障时,某follower会成为新的leader
3、主题和分区
一个主题下可以有多个分区;分区有序,主题不一定有序
消费者组是逻辑上的一个订阅者,由多个消费者组成
各个分区可以被消费者并行消费
多个消费者组可以订阅同一个主题
1个消费者可以消费多个分区
对于1个消费者组,1个分区 只能被 该消费者组内的1个消费者 消费
建议 某主题的分区数=订阅该主题的消费者组的消费者数
一台服务器有Broker,一个集群由多个Broker组成
一个Topic可以分布到多个Broker