Kafka都没整明白,还敢去面试?( 三 )
该示例中 , 每个分区都有一个引导程序(称之为“leader”) , 以及其他两个同步副本(称之为“follower”) 。
对于分区 partition 0 来说 , broker1 是“leader” ,broker2 和 broker3 都是“follower” , 从而分区 partition 0 的所有读写操作都将在 broker1 中进行 。
同时 , 之后更新的内容也会被同步复制到 broker2 和 broker3 对应的分区(partition)中 。
创建 Kafka 集群——Demo
我们还是以上图中三个 Broker 组成的 Kafka 集群为例 , 拆解 Kafka 集群创建的步骤 。
①Kafka 集群环境准备
首先需要准备好一台安装有 Zookeeper 的机器 , 没有 Zookeeper , Kafka 集群将无法工作 。
同时建议直接从官网下载最新版本的 Apache Kafka , 目前版本更新至2.11 , 直接解压后将其放置到 bin 目录下:
https://archive.apache.org/dist/kafka/1.0.0/kafka_2.11-1.0.0.tgz 然后启动 ZooKeeper , 为什么需要 Zookeeper?它在这里主要负责协调服务 , 管理代理服务 Broker , 确定每个分区中的引导程序 , 以及在 Kafka 消息主题或代理服务发生变更时及时发出警告 。
通过以下命令可以启动一个Zookeeper实例:
本文插图
②启动 Kafka Brokers
成功安装 Kafka 并启动 ZooKeeper 实例后 , 接下来就可以开启 Kafka Broker 了 , 这里共启动了三个 Kafka Broker 。
具体启动方式:先定位到 Kafka 根目录下的“config”文件夹下 , 找到“server.properties”文件 , 将其复制三次 。
然后分别命名为server_1.properties , server_2.properties 以及 server_3.properties , 并针对三个文件内容做如下编辑 , 直接保存即可:
本文插图
保存后通过命令开启这三个代理服务:
本文插图
③创建主题
通过如下命令创建消息主题:
本文插图
④生成引导服务
通过 Kafka 控制台生成器(Kafka console)指定任意一个代理服务地址 , 并基于之前创建的主题发布一些消息 。
这个指定的代理服务就被视作为引导服务程序 , 用于访问整个集群 。
本文插图
⑤“消费”消息
通过 Kafka 控制台来使用消息 , 用户(即:消息消费者)需要指定任意一个代理服务(Broker)地址作为引导服务器 。
在阅读消息时 , 用户(即:消息消费者)是看不到消息顺序的 , 上文中也提到过消息的先后顺序仅在分区级别(partition level)进行维护 , 而非主题级别(topic level) 。
本文插图
通过以下命令可以描述主题并查看各分区的分布情况 , 以及每个分区的引导服务器:
本文插图
从上面的执行结果可以看出:
- broker-1 是分区 0 的引导服务器 。
- broker-2 是分区 1 的引导服务器 。
- broker-3 是分区 2 的引导服务器 。
- broker-1 , broker-2 , broker-3 分别具有每个分区的副本(同步且相互备份) 。
- 求职|2020年考上“专科”的新生注意了!这3件事越早明白越好,对就业有帮助
- 八路军|八路军6个师长5人成了元帅,他却连大将都没评上,网友:太亏了!
- 电池|iPhone12电池小,真的续航差?看看真实的数据就明白了
- 网友|面试时话都没讲就赶人走?”,杭州小伙想不通:“就因为家里拆迁了
- 家装百科|美元没上榜英镑排第5, 前三你可能都没听过,全球最值钱6大货泉,
- 电话诈骗|这种骗局连内行人都没看出来!你能看穿吗?
- 海沃德|1年3419万美元!仅仅3年,他从巨星退化到凡人,白送都没人要
- 哈比布|原创小鹰已是俄罗斯国宝拳王,但妻子情况完全保密,连一张照片都没有
- awesome科技|苹果12都没办法,小米宣布发布80W无线充电!这技术可真绝
- lpl|Rita周淑怡过时了?S10世界赛LPL新四大金花登台,都没满25岁