Centos_7.2 下 Kafka_2.13 分布式消息系统的集群模式配置图文详解




《 Centos_7.2 下 Kafka_2.13 分布式消息系统的集群模式配置 》





一、前言
在上一篇博客中完成了 《 kafka 分布式消息系统的单例模式配置 》 的工作,但是在实际生产环境中,


二、环境介绍
Linux 版本: Centos-7
JDK 版本: JDK_1.8_Linux64bit
zookeeper 版本: zookeeper-3.5.3-beta
kafka 版本: kafka_2.12-1.0.0



三、集群模式搭建
1、kafka 基本环境准备
万事从入门开始,如果还没有 kafka 分布式消息系统的相关概念,建议从这儿开始
《 kafka 分布式消息系统的单例模式配置 》
在本篇博客中包括的内容:Linux 下 JDK 环境配置、zookeeper 的单例/集群模式环境、kafka 镜像包的准备、kafka 的单例模式配置。


2、Kafka 集群
1)、准备 Kafka
首先将 Kafka 放到便于管理的目录,输入命令 “ cp kafka_2.12-1.0.0 /usr/local/kk_cluster -r ”,

然后进入到 Kafka 的配置文件目录,输入命令 “ cd /usr/local/kk_cluster/config ” ,如下图:




2)、这儿应为条件有限,只实现 Kafka 的伪集群方式,但是和实际生产环境的搭建是相同的操作,在实际的生产环境中更容易些,应为不用考虑端口等因素。

首先需要复制出三个 参数配置文件,输入命令 “ cp server.properties server_001.properties ” ,如下图:




3)、修改参数配置,关于参数的详细介绍,在《单例》中已经明确,在这儿就不再作过多的阐述,Kafka 集群主要修改内容项如下:

# 当前机器在集群中的唯一标识,和zookeeper的myid性质一样
broker.id=1
# 当前kafka对外提供服务的端口默认是9092
port=9001
# kafka数据的存放地址,多个地址的话用逗号分割,多个目录分布在不同磁盘上可以提高读写性能
# 消息存放的目录,这个目录可以配置为“,”逗号分割的表达式,上面的 num.io.threads 要大于这个目录的个数这个目录
# 如果配置多个目录,新创建的 topic 把消息持久化到当前以逗号分割的目录中,那个 partition 中数最少就放到哪个 partition 中
log.dirs=/home/temp/kk_cluster_logs/kk_001_logs
# 设置zookeeper的连接端口,连接多个 zookeeper 时,用逗号隔开
zookeeper.connect=192.168.78.141:2001,192.168.78.141:2002,192.168.78.141:2003




kafka 标识 id : 1~3
kafka 端口号范围:9001~9003
zookeeper 端口范围:2001~2003


第一个 Kafka 服务:

唯一标识,监听 IP 和端口,如下图:




日志目录,如下图:




zookeeper 链接,如下图:




第二个 Kafka 服务:

唯一标识,监听 IP 和端口,如下图:




日志目录,如下图:




zookeeper 链接,如下图:




第三个 Kafka 服务:

唯一标识,监听 IP 和端口,如下图:




日志目录,如下图:




zookeeper 链接,如下图:




4)、启动 Kafka 集群
为了快捷的启动 kafka 集群,这儿编写个 启动脚本儿,内容如下:


#!/bin/bash
# 启动1号服务
bin/kafka-server-start.sh config/server_001.properties & 
# 休眠 6 秒
sleep 6
# 启动2号服务
bin/kafka-server-start.sh config/server_002.properties & 
# 休眠 6 秒
sleep 6
# 启动3号服务
bin/kafka-server-start.sh config/server_003.properties & 
# 休眠 6 秒
sleep 6




5)、测试
创建一个 3 个副本 1 个分区和3个副本2个分区 的 topic,进入到 Kafka 的 bin 目录中,

输入命令 “ ./kafka-topics.sh --create --topic msg --replication-factor 3 --partitions 1 --zookeeper 192.168.78.141:2001 ” 

 “ ./kafka-topics.sh --create --topic msgs --replication-factor 3 --partitions 2 --zookeeper 192.168.78.141:2001 ” 

如下图:




查看 Kafka 集群的详细节点信息,
查看一个分区的主题,输入命令 “ ./kafka-topics.sh --describe --topic msg --zookeeper 192.168.78.141:2001 ”

如下图:




注意,在这个分区中,节点 3 被选举为领导者。

如上图是输出的关于 topic msg 的详细信息。第一行给出了所有分区的摘要,其它行都描述了关于一个分区的信息。因为这个主题只有一个分区,所以只有一行。

如果创建了两个分区,如下图所示:




leader :是负责给定分区所有读/写的节点。每个节点都可能被分区随机选择所有节点的领导者。
replicas :是为这个分区复制日志的节点列表,不管它们是领导者还是最随者,只要它们当前还存活着。
isr :是一组 “ in-sync ” 副本。这是副本列表的子集,该副本列表当前是活的,并被领导者捕获。
注意,第一分区中,节点 3 被选举为该分区的领导者;第二分区中,节点 1 被选举为领导者。


现在发表一些信息给新创建的主题,
输入命令 “ ./kafka-console-producer.sh --broker-list 192.168.78.141:9001 --topic msg ”

如下图:




现在让我们消费这些消息,
输入命令 “ ./kafka-console-consumer.sh --from-beginning --topic msg --zookeeper 192.168.78.141:2001  ”

如下图:




现在我们来测试一下容错。在 topic 为 msg 中 broker 3 是作为 leader,所以让我们杀了它,
输入命令 “  ps aux|grep config/server_003.properties ” 查看该 broker 的 pid ,输入命令 “ kill -9 39897 ” 程序的强制终止指令,暴力砍掉这个 broker,

如下图:







好了,关于 kafka 分布式消息系统的集群环境的搭建就到此结束了,如果还有什么疑问或遇到什么问题,可以给我留言。
歇后语:“共同学习,共同进步”,也希望大家多多关注CSND的IT社区。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值