Centos_7.2 下 Kafka_2.13 分布式消息系统的集群模式配置图文详解
2018-02-28 16:48
846 查看
《 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 集群主要修改内容项如下:
kafka 标识 id : 1~3
kafka 端口号范围:9001~9003
zookeeper 端口范围:2001~2003
第一个 Kafka 服务:
唯一标识,监听 IP 和端口,如下图:
日志目录,如下图:
zookeeper 链接,如下图:
第二个 Kafka 服务:
唯一标识,监听 IP 和端口,如下图:
日志目录,如下图:
zookeeper 链接,如下图:
第三个 Kafka 服务:
唯一标识,监听 IP 和端口,如下图:
日志目录,如下图:
zookeeper 链接,如下图:
4)、启动 Kafka 集群
为了快捷的启动 kafka 集群,这儿编写个 启动脚本儿,内容如下:
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社区。
一、前言
在上一篇博客中完成了
《 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社区。
相关文章推荐
- Centos_7.2 下构建 Kafka_2.13 分布式消息系统的单机版
- 分布式消息队列kafka系列介绍 — 配置文件详解
- Centos中安装配置local/standalone模式和伪分布式模式hadoop集群
- Kafka 分布式消息系统详解
- linux kafka集群配置和测试图文详解
- Hadoop 2.x 入门学习(一)--Centos 6.8 系统Hadoop 2.7.4 伪分布式安装配置详解
- Kafka开源消息系统分布式集群搭建
- Kafka 分布式消息系统详解
- 分布式消息队列kafka系列介绍 — 配置文件详解
- 一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)
- 分布式消息队列kafka系列介绍 — 配置文件详解
- 分布式消息中间件(七)——Kafka安装及配置详解(Linux)
- Hadoop2.6.2完全分布式集群HA模式安装配置详解
- 一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)
- Hadoop2.6.2完全分布式集群HA模式安装配置详解
- 一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)
- Kafka 分布式消息系统详解
- Hadoop2.6.2完全分布式集群HA模式安装配置详解
- kafka分布式消息系统
- 【Apache Kafka】KAFKA分布式消息系统