Kafka集群部署并启动
在本文中将从演示如何搭建一个Kafka集群开始,然后简要介绍一下关于Kafka集群的一些基础知识点。但本文仅针对集群做介绍,对于Kafka的基本概念不做过多说明,这里假设读者拥有一定的Kafka基础知识。
首先,我们需要了解Kafka集群的一些机制:
- Kafka是天然支持集群的,哪怕是一个节点实际上也是集群模式
- Kafka集群依赖于Zookeeper进行协调,并且在早期的Kafka版本中很多数据都是存放在Zookeeper的
- Kafka节点只要注册到同一个Zookeeper上就代表它们是同一个集群的
- Kafka通过brokerId来区分集群中的不同节点
Kafka的集群拓扑图如下:
![5bd014c906cc2fc2b179563594b6b6fc.png](https://i-blog.csdnimg.cn/blog_migrate/4c8b98cb9f2865104fbd6d0db83eef19.png)
Kafka集群中的几个角色:
- Broker:一般指Kafka的部署节点
- Leader:用于处理消息的接收和消费等请求,也就是说producer是将消息push到leader,而consumer也是从leader上去poll消息
- Follower:主要用于备份消息数据,一个leader会有多个follower
在本例中,为了更贴近实际的部署情况,使用了四台虚拟机作演示:
机器IP | 作用 | 角色 | brokerId |
---|---|---|---|
192.168.99.1 | 部署Kafka节点 | broker server | 0 |
192.168.99.2 | 部署Kafka节点 | broker server | 1 |
192.168.99.3 | 部署Kafka节点 | broker server | 2 |
192.168.99.4 | 部署Zookeeper节点 | 集群协调者 |
Zookeeper安装
Kafka是基于Zookeeper来实现分布式协调的,所以在搭建Kafka节点之前需要先搭建好Zookeeper节点。而Zookeeper和Kafka都依赖于JDK,我这里已经事先安装好了JDK:
[root@192.168.99.4 ~]# java --version
java 11.0.5 2019-10-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)
[root@txy-server2 ~]#
准备好JDK环境后,到Zookeeper的官网下载地址,复制下载链接:
- https://zookeeper.apache.org/releases.html#download
然后到Linux中使用wget命令进行下载,如下:
[root&