计算机系统应用教程网站

网站首页 > 技术文章 正文

Kafka(zookeeper)环境配置超级详细

btikc 2024-10-25 11:01:20 技术文章 15 ℃ 0 评论

环境:CentOS Linux release 8.1.1911 (Core) + zookeeper-3.6.2+kafka_2.13-2.7.0(2.13是scala版本,2.7.0是kafka版本,kafa使用scala开发的)+ jdk8

zk下载地址:


kafka下载地址:


一、环境准备

将下载的3个软件(jdk,zk,kafka)放在/root/sf目录(这里目录根据自己的情况随意)


  • 解压配置jdk环境变量
tar zxvf jdk-8u221-linux-x64.tar.gz
解压后目录:
/root/sf/jdk1.8.0_221

环境变量配置:

vim /etc/profile
在最下面加入如下配置:

保存退出

执行如下命令使得配置生效

source /etc/profile

二、解压及配置zookeeper

tar zxvf apache-zookeeper-3.6.2-bin.tar.gz -C ./zk/
 // 解压到当前目录下的zk目录中

进入zk:

将文件夹重命名为2181(每一个zk 服务都以自己的端口号命名)

mv apache-zookeeper-3.6.2-bin 2181

再复制2个zk分别为2182,2183

cp -R 2181 2182
cp -R 2181 2183

新建3个zk的数据保存目录:

/root/sf/datas/zk/2181
/root/sf/datas/zk/2182
/root/sf/datas/zk/2183
// 分别在没个文件夹建文件myid 内容分别为1,2,3

接着分别进入zk服务的conf目录

// 复制一个配置文件
cp zoo_sample.cfg zoo.cfg

修改zoo.cfg配置(这里以2181为例,前提的zk执行修改dataDir及端口)



这里的server.x:x就是对应myid中的内容(1,2,3)。

2182,2183分别按照上面修改完成(修改dataDir和端口)

到此zookeeper就配置完成,每次都进入不同的目录启动zk非常麻烦,这里写一个shell脚本来一次启动所有服务:

在zk目录下新建shell脚本:


touch zkServer.sh
// 编辑该文件内容
vim zkServer.sh
// 内容如下:
#!/bin/bash
age="使用: $0 (start|stop|status)"
if [ $# == 0 ];then
	echo $age
	exit 1
fi
behave=$1
echo "$behave zkServer cluster"
#主机名称
for i in 1 2 3 
do
	/root/sf/zk/218$i/bin/zkServer.sh $behave
done
exit

保存退出后执行如下命令,可执行的权限

chmod +x zkServer.sh

到此shell脚本完成,接下来测试:

启动:

./zkServer.sh start


执行jps查看刚启动的zk


到此zk就全部完成了,接下来kafka的配置


三、解压配置kafka

tar zxvf kafka_2.13-2.7.0.tgz -C ./kafka/
// 解压kafka到当前目录的kafka目录下

进入kafka目录:

将文件夹重命名为9092(每一个kafka 服务都以自己的端口号命名)

mv kafka_2.13-2.7.0 9092

再复制2个kafka分别为9093,9094

cp -R 9092 9093
cp -R 9092 9094

新建3个kafka的数据保存目录:

/root/sf/datas/kafka/9092
/root/sf/datas/kafka/9093
/root/sf/datas/kafka/9094

接着分别进入kafka服务的config目录修改server.properties文件


要修改的地方上图已经标注出来了

1、broker.id=0 // 这里的数字要唯一

2、listeners=PLAINTEXT://:9092 // 这里是kafka的端口

3、log.dirs=/root/sf/datas/kafka/9092 // 数据目录

4、zookeeper.connect=localhost:2181,localhost:2182,localhost:2183 // zk集群的地址:端口

其它2个kafka分别按照上面的方式修改即可。

到此kafka的配置就完成了。

一样3个kafka分别启动太麻烦,这里也通过shell脚本来启动kafka集群


新建kfServer.sh脚本文件:

touch kfServer.sh
vim kfServer.sh
#!/bin/bash
age="使用: $0 (start|stop)"
if [ $# == 0 ];then
	echo $age
	exit 1
fi
echo "$1 kafkaServer cluster"
#主机名称
for i in 2 3 4 
do
	if [ "$1" == "start" ];then
		/root/sf/kafka/909$i/bin/kafka-server-$1.sh -daemon /root/sf/kafka/909$i/config/server.properties
	fi
	if [ "$1" == "stop" ];then
		/root/sf/kafka/909$i/bin/kafka-server-$1.sh stop
	fi
done
exit

到此kafka的所有配置完成了,接下来测试,启动kafka通过上面的脚本

启动kafka前的先启动zookeeper服务


kafka启动完成!!!

Kafka基础知识点

zookeeper实现分布式缓存

zookeeper实现服务注册与发现

Spring MVC 异常处理方式

Spring Cloud Nacos 开启权限验证

Spring Cloud Sentinel整合Feign

SpringMVC参数统一验证方法

SpringBoot多数据源配置详解

springboot mybatis jpa 实现读写分离

SpringCloud Hystrix实现资源隔离应用

SpringBoot开发自己的Starter

SpringBoot RabbitMQ消息可靠发送与接收

SpringBoot中使用Cache及JSR107的使用

SpringBoot2 整合OAuth2实现统一认证

springboot 基于数据库的乐观锁实现

SpringBoot+Atomikos多数据源分布式事务

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表