一、Zookeeper核心要点
1. 核心特性
分布式和谐服务,用于维护配置/定名/同步等元数据
采用层次化数据模型(Znode树结构),每个节点可存储<1MB数据
典范应用场景:
Hadoop NameNode高可用
HBase元数据管理
Kafka集群选举与状态管理
2. 筹划限制
内存型存储,不适合大数据量场景
数据变动通过版本号(Version)控制,实现乐观锁机制
采用ZAB协议保证数据一致性
二、Kafka核心架构
1. 三大核心角色
消息体系:解耦/削峰/异步通讯,支持次序性与回溯消费
存储体系:长期化存储+多副本机制,数据保留计谋可配置
流处理平台:提供窗口/连接/聚合等实时处理本事
2. 核心组件
组件
| 功能说明
| Producer
| 消息生产者,支持自动负载均衡/指定分区写入
| Broker
| 服务节点,负责消息长期化存储与副本同步
| Consumer
| 采用Pull模式消费,记录offset保证消费连续性
| 3. 核心机制
主题与分区:
Topic逻辑分类,Partition物理分片(提升并发本事)
单Partition内消息有序,不同Partition间无序
多副本机制:
Leader处理读写,Follower同步数据
ISR(In-Sync Replicas)机制保障高可用
三、Zookeeper与Kafka协同
集群管理:记录Broker注册信息与存活状态
元数据存储:
存储Topic配置、Partition分配方案
维护Consumer Group的offset信息(旧版本)
选举机制:
Controller选举(集群主节点)
Partition Leader选举
四、消息存储与消费
1. 存储筹划
分区对应物理日志文件(Segment分段存储)
索引文件采用希罕存储,节流空间
消息按时间/巨细计谋整理旧数据
2. 消费模式
模式
| 特点
| 点对点
| 单消费组单消费者
| 发布-订阅
| 多消费组独立消费
| 高效消费配置
| 消费者数=分区数实现最大并行度
| 五、常用命令速查
1. Topic管理
- bash# 创建主题(4分区2副本)
- kafka-topics.sh --create --bootstrap-server localhost:9092 \
- --topic my-topic --partitions 4 --replication-factor 2
- # 查看主题详情
- kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic my-topic
复制代码 2. 生产消费
- bash# 控制台生产者(带Key发送)
- kafka-console-producer.sh --bootstrap-server localhost:9092 \
- --topic my-topic --property parse.key=true --property key.separator=":"
- # 控制台消费者(显示元数据)
- kafka-console-consumer.sh --bootstrap-server localhost:9092 \
- --topic my-topic --property print.partition=true --property print.offset=true
复制代码 3. 集群管理
- bash# 查看Broker状态
- kafka-cluster.sh --bootstrap-server localhost:9092 --describe
- # 修改集群配置
- kafka-configs.sh --bootstrap-server localhost:9092 --entity-type brokers \
- --entity-name 0 --alter --add-config "log.retention.hours=168"
复制代码 六、摆设要点
情况要求:JDK8+、Zookeeper集群(发起3/5节点)
推荐工具:Kafka-UI举行可视化监控
性能调优方向:
分区数规划
副本因子设置
消息保留计谋
压缩算法选择(gzip/lz4等)
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |