目录

2-kafka集群环境搭建

2-kafka集群环境搭建

本文介绍kafka集群环境的搭建,我利用三个虚拟机搭建。文中我一步步演示了过程中可能会碰到的问题,在文章的最后,利用jmx,能看到详细的各个kafka broker的运行情况。

-1、环境

  • ubuntu :22.04-lts
  • kafka: 2.8
  • java: 17

0、规划

整体规划图如下:

https://i-blog.csdnimg.cn/direct/9599f50bbbf24ddb9790931cfff75101.png

可以看到我们利用一个zookeeper搭建了3个broker的kafka集群。详细的规划如下表:

序号borker.idipportjmx portzk
1100192.168.99.10090929992localhost:2181
2120192.168.99.12090929999192.168.99.100:2181
3130192.168.99.13090929993192.168.99.100:2181

1、kafka-1搭建

对应上面列表的“序号1”。 注意这里有坑 ,ubuntu下(centos没测,大家可以试试)跑kafka目录下的zookeeper时,报java找不到的错误(启动kafka一样会报错,都按下面方法处理)。这是因为你机器上的java不是/usr/bin/java,和kafka要的不同。这里通过软链解决:

# 找到你机器上java的目录
which java  

# 第一个地址是我机器上java的路径,通过上面命令查出来的,第二个照着抄,因为就是kafka要的地址
sudo ln -s /home/jackie/.sdkman/candidates/java/current/bin/java /usr/bin/java

1.1、启动zookeeper

# 后台启动,日志文件写到zk.log文件内
sudo bin/zookeeper-server-start.sh -daemon config/zookeeper.properties 

kafka自带的zookeeper可以 使用-daemon参数 后台启动。如果你要改zookeeper的端口信息,在config/zookeeper.properties文件里。

1.2、配置kafka-1

修改config/server.properties文件,至少有3出要改:

  • borker.id:集群中broker的id,必须与其他机器不同。这里配成100,按上面规划表中的来。
  • listeners:配置borker监听的端口,写你机器的ip,一定别写localhost或127.0.0.1。前面的PLAINTEXT表示明文传输,我们保持默认即可。
  • zookeeper.connect:指定连接zookeeper的地址和端口,如果是zookeeper集群,多个机器逗号分割即可。

贴个图,看看我配的值,大家按我的来即可。

https://i-blog.csdnimg.cn/direct/4098c40a59da40a3b374211878300e5b.png

https://i-blog.csdnimg.cn/direct/2ed38698c2fa4fabb65e147394f51ee5.png

https://i-blog.csdnimg.cn/direct/c3dc239950d642c38270040b2fc8b48b.png

当然还有别的参数可以配置,比如数据文件的保存路径等,这里咱们保持默认。

1.3、启动kafka-1

修改config/server.properties文件,

bin/kafka-server-start.sh -daemon config/server.properties 
  • -daemon: 代表后台启动,有些同学喜欢用nohup命令,其实效果一样。

这样第一个kafka就配置完成,并且启动了。kafka-2和kafka-3按照同样的步骤一步步执行即可。但是 注意:kafka-2、kafka-3的zookeeper地址都是用的kafka-1的,别填错了 。实际生产环境要配置zookeeper集群,别让zookeeper产生单点瓶颈。

2、配置jmx

配置jmx后,我们可以通过kafka-manager查看详细的运行参数。配置过程简单,咱们在bin/kafka-server.start.sh文件中,加入jmx的端口配置即可,如下图, 别加错地方 :

https://i-blog.csdnimg.cn/direct/6436dea5498748d4b7a049e86ac88386.png

这是kafka-1配置,其他两个机器按照上面规划来哦。配置好了咱们用 java Visualvm 看看效果。用Windows或mac,找到你jdk安装的目录, 执行bin/jvisualvm 命令,并远程连接这三个机器,注意jmx端口要和上面的对上。

https://i-blog.csdnimg.cn/direct/aec73b9fc8224a17b4b0684a155d04c6.png

注意:kafka机器上的防火器要么开放jmx的端口要么关闭防火墙。否则连接不上哦。至此kafka的集群配置完成了,上节咱们配置过kafka-manager,咱们在此看看效果(当然集群要重新配置,上节是单机)。

3、kafka-manager效果

https://i-blog.csdnimg.cn/direct/edf3bcbbd8984379952eaed4f0a6173d.png

能够看到咱们规划的集群已经完整的显示到kafka-manager里了,也算验证了我们的配置。

好了,先到这里吧。大家动手试试。

//~~