Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群
文章目录
- 概述
- 部署信息
- 配置信息
- 验证
概述
对于kafka来说,一个单独的broker意味着kafka集群中只有一个节点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。
单个节点的安装: Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_2.11‐1.1.0
这里我们来搭建个3个节点的kafka集群来体验下吧
部署信息
192.168.18.130 —> kafka 、 zookeeper(单节点的zk)
192.168.18.131 —> kafka
192.168.18.132 —> kafka
单节点的 zk , 部署上 130上,事实上生产环境的话,zk也是要搭建集群的,这里演示用的话,用单个节点的zk先。
3个节点的kafka注册到 单节点的zk上。
配置信息
kafka的配置文件主要是配置文件 server.properties
130
[root@artisan config]# grep -Ev '^$|^[#;]' server.properties
broker.id=0
listeners=PLAINTEXT://192.168.18.130:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.18.130:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
[root@artisan config]#
131
[root@artisan config]# grep -Ev '^$|^[#;]' server.properties
broker.id=1
listeners=PLAINTEXT://192.168.18.131:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.18.130:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.de
132
[root@artisan config]# grep -Ev '^$|^[#;]' server.properties
broker.id=2
listeners=PLAINTEXT://192.168.18.132:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.18.130:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
[root@artisan config]#
还有一篇博主写的 zk也是高可用的,可以参考下,写的很不错 ZooKeeper+Kafka 高可用集群搭建
验证
启动zookeeper 和 3个 kafka 后,我们创建一个新的topic,副本数设置为3,分区数设置为2
[root@artisan bin]# ./kafka-topics.sh --create --zookeeper 192.168.18.130:2181 --replication-factor 3 --partitions 2 --topic artisan-replicated-topic
Created topic "artisan-replicated-topic".
[root@artisan bin]#
查看topic的情况
[root@artisan bin]# ./kafka-topics.sh --describe --zookeeper 192.168.18.130:2181 --topic artisan-replicated-topic
Topic:artisan-replicated-topic PartitionCount:2 ReplicationFactor:3 Configs:Topic: artisan-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0Topic: artisan-replicated-topic Partition: 1 Leader: 2 Replicas: 2,0,1 Isr: 2,0,1
[root@artisan bin]#
我们来解释下上面的输出内容
第一行是所有分区的概要信息,之后的每一行表示每一个partition的信息。
所有分区的概要信息:
Topic:artisan-replicated-topic PartitionCount:2 ReplicationFactor:3 Configs
每一个partition的信息:
Topic: artisan-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 1,2,0
Topic: artisan-replicated-topic Partition: 1 Leader: 2 Replicas: 2,0,1 Isr: 2,0,1
- leader节点负责给定partition的所有读写请求。
- replicas 表示某个partition在哪几个broker上存在备份。不管这个几点是不是”leader“,甚至这个节点挂了,也会列出
- isr 是replicas的一个子集,它只列出当前还存活着的,并且已同步备份了该partition的节点。
我们可以运行相同的命令查看之前创建的名称为”artisan“的topic
[root@artisan bin]# ./kafka-topics.sh --describe --zookeeper 192.168.18.130:2181 --topic artisan
Topic:artisan PartitionCount:1 ReplicationFactor:1 Configs:Topic: artisan Partition: 0 Leader: 0 Replicas: 0 Isr: 0
[root@artisan bin]#
之前设置了topic的partition数量为1,备份因子为1,因此显示就如上所示了。当然我们也可以通过如下命令增加topic的分区数量(目前kafka不支持减少分区):
[root@artisan bin]# ./kafka-topics.sh --alter --partitions 3 --zookeeper 192.168.18.130:2181 --topic artisan
WARNING: If partitions are increased for a topic that has a key, the partition logic or ordering of the messages will be affected
Adding partitions succeeded!
重新查看
[root@artisan bin]# ./kafka-topics.sh --describe --zookeeper 192.168.18.130:2181 --topic artisan
Topic:artisan PartitionCount:3 ReplicationFactor:1 Configs:Topic: artisan Partition: 0 Leader: 0 Replicas: 0 Isr: 0Topic: artisan Partition: 1 Leader: 1 Replicas: 1 Isr: 1Topic: artisan Partition: 2 Leader: 2 Replicas: 2 Isr: 2
[root@artisan bin]#
现在我们向新建的 artisan-replicated-topic 中发送一些message,kafka集群可以加上所有kafka节点:
[root@artisan bin]# ./kafka-console-producer.sh --broker-list 192.168.18.130:9092,192.168.18.131:9092,192.168.18.132:9092 --topic artisan-replicated-topic
>artisan message test 1
>artisan message test 2
>artisan message test 3
>
现在131broker 开始消费:
[root@artisan bin]# ./kafka-console-consumer.sh --bootstrap-server 192.168.18.131:9092 --from-beginning --topic artisan-replicated-topic
artisan message test 1
artisan message test 3
artisan message test 2
现在我们来测试我们 容错性 ,因为broker1目前是artisan-replicated-topic的分区0的 leader,所以我们要将其kill , kill 掉 131 节点的 kafka
再执行
[root@artisan bin]# ./kafka-topics.sh --describe --zookeeper 192.168.18.130:2181 --topic artisan-replicated-topic
Topic:artisan-replicated-topic PartitionCount:2 ReplicationFactor:3 Configs:Topic: artisan-replicated-topic Partition: 0 Leader: 2 Replicas: 1,2,0 Isr: 0,2Topic: artisan-replicated-topic Partition: 1 Leader: 2 Replicas: 2,0,1 Isr: 2,0
[root@artisan bin]#
我们可以看到,分区0的leader节点已经变成了broker 2。要注意的是,在Isr中,已经没有了1号节点。leader的选举也是从ISR(in-sync replica)中进行的。
131 重新起来以后,还是可以消费消息
[root@artisan bin]# ./kafka-server-start.sh -daemon ../config/server.properties
[root@artisan bin]# jps
24436 Kafka
24455 Jps
[root@artisan bin]# ./kafka-console-consumer.sh --bootstrap-server 192.168.18.131:9092 --from-beginning --topic artisan-replicated-topic
artisan message test 1
artisan message test 3
artisan message test 2
再看下
[root@artisan bin]# ./kafka-topics.sh --describe --zookeeper 192.168.18.130:2181 --topic artisan-replicated-topic
Topic:artisan-replicated-topic PartitionCount:2 ReplicationFactor:3 Configs:Topic: artisan-replicated-topic Partition: 0 Leader: 1 Replicas: 1,2,0 Isr: 0,2,1Topic: artisan-replicated-topic Partition: 1 Leader: 2 Replicas: 2,0,1 Isr: 2,0,1
[root@artisan bin]#
[root@artisan bin]#
Apache Kafka-初体验Kafka(03)-Centos7下搭建kafka集群相关推荐
- linux下搭建zookeeper集群
linux下搭建zookeeper集群 1.准备 1.下载zookeeper压缩包 (注:下载3.4.14版本,3.5以上运行时会少jar包) 2.系统:centOS7 安装好java环境 3.将压缩 ...
- Windows下搭建Tomcat集群的配置详解
< Windows下搭建Tomcat集群基础入门详解 > 前言 在搭建 < Apache + Tomcat 实现Web服务器集群 > 前我们还需要实现 Tomcat集群实现Se ...
- 阿里云环境下搭建HadoopHA集群
阿里云环境下搭建HadoopHA集群 1. HadoopHA介绍 1.1 hadoop高可用集群的简介 hadoop是一个海量数据存储和计算的平台,能够存储PB级以上的数据,并且利用MapRedu ...
- Redis集群搭建(转自一菲聪天的“Windows下搭建Redis集群”)
配置Redis参考:http://blog.csdn.net/zsg88/article/details/73715947 使用Ruby配置集群参考:https://www.cnblogs.com/t ...
- ubuntu下搭建redis集群
前言 ubuntu下搭建redis集群步骤 步骤 准备工作 redis的集群管理工具依赖于ruby,先安装 sudo apt-get install ruby 上传redis和ruby的接口配置文件 ...
- windows下搭建mysql集群_Windows下搭建MySQL集群
本文将讨论在Windows下搭建MySQL集群的步骤和搭建过程中应当注意的问题. 由于机器数量和性能有限,搭建环境为一台宿主机(IP:10.200.178.191),一台虚拟机(IP:10.200.1 ...
- CentOS7.5搭建k8s集群
环境准备 相应软件版本: linux:CentOS7.6 docker:18.06.3 kubeadmn:1.17.4 kubelet:1.17.4 kubectl:1.17.4 网络配置 网络地址: ...
- 基于Centos7系统搭建Redis集群之主从复制(新手教程)
最近没多少事,就想着搭建个redis集群玩玩,毕竟听起来也是很高大上的东西,但是经过自己的断断续续的搭建,也感觉不是那么难,肯定也只是刚刚入门,搭建的东西也比较简单,并没有触及到里面更深入的内容: 因 ...
- Windows下搭建Redis集群
一.首先下载好Redis的Windows版本,注意:Redis只有3.0之后的版本才有集群 1.下载好后直接解压,可看到这些目录 2.在解压的目录启动redis-server.exe启动redis ...
最新文章
- 06. 用css实现三角形
- 去姥姥家需要做的事情
- Android Studio-目录结构
- 线性一致性理解Linearizability
- 【MaxCompute学习】隐式转化的问题
- Magento报错“No Input File Specified”的解决方法
- QT每日一练day1:第一个程序
- Objective-C选择器 Selector
- 供应链金融与区块链01——论文阅读
- 基于SSM实现台球厅计时收费系统
- 关于seo优化实用篇
- PS CS6教程(photoshop视频教程) 免费下载
- 增资扩股和股权转让有什么区别?
- 可靠性测试主要注意点
- 深入浅出的解释什么是tensor
- Excel中利用宏批量生成md5加密
- C++ Primer Plus (第六版)编程练习记录(chapter4)
- huntian oy (数论卷积杜教筛)
- 名校博士生临近毕业突然离世,去世前一直在熬夜完善毕业论文
- 外网访问arm嵌入式linux系统_嵌入式Linux系统移植的四大步骤
热门文章
- a标签居中 img vue_Vue中img的src属性绑定与static文件夹实例
- 开源 python_8款Python GUI开源框架,谁才是你的最爱?
- 向前欧拉公式 matlab_你可能不知道的MATLAB操作#第三话
- 信息熵和交叉熵的细节理解
- 机器学习算法源码全解析(三)-范数规则化之核范数与规则项参数选择
- express ajax分页实例,element+express+mongoose实现分页查询
- java list有序还是无序_牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。...
- 深度学习100例-卷积神经网络(CNN)花朵识别 | 第4天
- 为什么要写《机器学习实践应用》这本书
- 【git学习五】git基础之git分支