OpenEuler22.04配置zookeeper+kafka三节点集群

OpenEuler22.04配置zookeeper+kafka三节点集群

  • [1. 基础环境](#1. 基础环境)
  • [2. 部署zookeeper集群](#2. 部署zookeeper集群)
    • [2.1 下载、解压](#2.1 下载、解压)
    • [2.2 配置](#2.2 配置)
    • [2.3 配置zookeeper服务](#2.3 配置zookeeper服务)
  • [3. 配置kafka集群](#3. 配置kafka集群)
    • [3.1 下载解压](#3.1 下载解压)
    • [3.2 配置](#3.2 配置)
    • [3.3 配置服务](#3.3 配置服务)
    • [3.4 kafka常用命令](#3.4 kafka常用命令)
  • [4. 其它](#4. 其它)

感觉OpenEuler的操作方式跟centos区别不大,下面的操作在centos下也可行

1. 基础环境

三主机节点IP:

192.168.8.10

192.168.8.11

192.168.8.12

配置一些所需的基础软件

bash 复制代码
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel wget curl  lrzsz bash-completion

2. 部署zookeeper集群

下载:apache-zookeeper-3.8.4-bin.tar.gz

下载链接地址:https://zookeeper.apache.org/releases.html

2.1 下载、解压

bash 复制代码
cd /tmp/
wget https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
tar -xvf apache-zookeeper-3.8.4-bin.tar.gz
mv apache-zookeeper-3.8.4-bin /usr/local/
cd /usr/local/
ln -sv apache-zookeeper-3.8.4-bin zookeeper
cd /usr/local/zookeeper/conf/

2.2 配置

简单配置

bash 复制代码
mkdir -pv /usr/local/zookeeper/data
mkdir -pv /usr/local/zookeeper/logs
# 复制配置文件
cp zoo_sample.cfg zoo.cfg
vim  zoo.cfg

配置文件内容如下:

bash 复制代码
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
server.1=192.168.8.10:2888:3888
server.2=192.168.8.11:2888:3888
server.3=192.168.8.12:2888:3888

分别在3台主机上修改myid

bash 复制代码
/usr/local/zookeeper/data/myid

#server1 192.168.8.10 执行
echo "1" > /usr/local/zookeeper/data/myid
#server2 192.168.8.11 执行
echo "2" > /usr/local/zookeeper/data/myid
#server3 192.168.8.12 执行
echo "3" > /usr/local/zookeeper/data/myid

2.3 配置zookeeper服务

使用systemd管理服务

bash 复制代码
vim /usr/lib/systemd/system/zookeeper.service

服务配置文件如下

bash 复制代码
[Unit]
Description=zookeeper server daemon
After=zookeeper.target

[Service]
Type=forking
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
ExecReload=/usr/local/zookeeper/bin/zkServer.sh stop && sleep 2 && /usr/local/zookeeper/bin/zkServer.sh start
ExecStop=/usr/local/zookeeper/bin/zkServer.sh stop
Restart=always

[Install]

WantedBy=multi-user.target

配置完成后启动服务

bash 复制代码
systemctl start zookeeper
查看启动状态
systemctl status zookeeper
/usr/local/zookeeper/bin/zkServer.sh status

设置开机启动

bash 复制代码
systemctl enable zookeeper

3. 配置kafka集群

3.1 下载解压

下载:kafka_2.12-3.8.1.tgz

下载页面:https://kafka.apache.org/downloads.html

bash 复制代码
cd /tmp/
wget https://dlcdn.apache.org/kafka/3.8.1/kafka_2.12-3.8.1.tgz
tar -xvf kafka_2.12-3.8.1.tgz
mv kafka_2.12-3.8.1 /usr/local/
cd /usr/local/
ln -sv kafka_2.12-3.8.1 kafka
mkdir -pv /data/kafka/data/logs

3.2 配置

简单配置

bash 复制代码
cd /usr/local/kafka/config/
vim server.properties

第一台:192.168.8.10配置如下:

bash 复制代码
host.name=192.168.8.10
listeners=PLAINTEXT://192.168.8.10:9092
advertised.listeners=PLAINTEXT://192.168.8.10:9092

log.dirs=/data/kafka/data/logs
zookeeper.connect=192.168.8.10:2181,192.168.8.11:2181,192.168.8.12:2181


log.retention.hours=48
log.cleaner.enable=true

第2台:192.168.8.11配置如下:

bash 复制代码
host.name=192.168.8.11
listeners=PLAINTEXT://192.168.8.11:9092
advertised.listeners=PLAINTEXT://192.168.8.11:9092

log.dirs=/data/kafka/data/logs
zookeeper.connect=192.168.8.10:2181,192.168.8.11:2181,192.168.8.12:2181

第3台:192.168.8.12配置如下:

bash 复制代码
host.name=192.168.8.12
listeners=PLAINTEXT://192.168.8.12:9092
advertised.listeners=PLAINTEXT://192.168.8.12:9092

log.dirs=/data/kafka/data/logs
zookeeper.connect=192.168.8.10:2181,192.168.8.11:2181,192.168.8.12:2181

3.3 配置服务

使用systemd管理服务

bash 复制代码
vim /usr/lib/systemd/system/kafka.service

服务配置文件如下

bash 复制代码
[Unit]
Description=kafka server daemon
After=kafka.target

[Service]

Type=forking
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
ExecReload=/usr/local/kafka/bin/kafka-server-stop.sh && sleep 2 && /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=always

[Install]
WantedBy=multi-user.target

配置完成后启动服务

bash 复制代码
systemctl start kafka
查看启动状态
systemctl status kafka

设置开机启动

bash 复制代码
systemctl enable kafka

3.4 kafka常用命令

创建一个topic,test

bash 复制代码
bin/kafka-topics.sh --create --bootstrap-server 192.168.8.12:9092 --replication-factor 2 --partitions 3 --topic test

查看一个topic情况

bash 复制代码
./bin/kafka-topics.sh --describe --bootstrap-server 192.168.8.12:9092 --topic test

修改一个topic

bash 复制代码
bin/kafka-topics.sh --alter  --bootstrap-server 192.168.8.12:9092 --topic test  --partitions 8 

创建topic成功,查看topic列表

bash 复制代码
bin/kafka-topics.sh --list --bootstrap-server 192.168.8.12:9092

生产者producer测试发送消息

bash 复制代码
bin/kafka-console-producer.sh --broker-list 192.168.8.12:9092 --topic test

用另一个shell窗口,消费者consumer测试接收消息

bash 复制代码
bin/kafka-console-consumer.sh --bootstrap-server 192.168.8.12:9092 --topic test --from-beginning

能够正常收发信息,说明安装成功了

创建项目用的topic

bash 复制代码
bin/kafka-topics.sh --create --bootstrap-server 192.168.8.12:9092 --replication-factor 1 --partitions 1 --topic test-project
bin/kafka-topics.sh --create --bootstrap-server 192.168.8.12:9092 --replication-factor 1 --partitions 10 --topic test-project

查看topic消息消费情况

bash 复制代码
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.8.12:9092 --list

查看topic消息组消费情况

bash 复制代码
bin/kafka-consumer-groups.sh --describe --bootstrap-server 192.168.8.12:9092 --group test-consumer

4. 其它

注意: 上面的配置都是不带用户认证的,只适合本机或局域网访问。如果考虑到安全性,主要添加主机防火墙和用户认证。

相关推荐
要开心吖ZSH9 分钟前
《Spring 中上下文传递的那些事儿》Part 4:分布式链路追踪 —— Sleuth + Zipkin 实践
java·分布式·spring
幼稚园的山代王1 小时前
RabbitMQ 4.1.1初体验
分布式·rabbitmq·ruby
百锦再1 小时前
RabbitMQ用法的6种核心模式全面解析
分布式·rabbitmq·路由·消息·通道·交换机·代理
一路向北North1 小时前
RabbitMQ简单消息监听和确认
分布式·rabbitmq·ruby
真实的菜1 小时前
Kafka生态整合深度解析:构建现代化数据架构的核心枢纽
架构·kafka·linq
武子康5 小时前
大数据-31 ZooKeeper 内部原理 Leader选举 ZAB协议
大数据·后端·zookeeper
一路向北North8 小时前
使用reactor-rabbitmq库监听Rabbitmq
分布式·rabbitmq·ruby
Amy1870211182314 小时前
赋能低压分布式光伏“四可”建设,筑牢电网安全新防线
分布式
June bug18 小时前
【软考中级·软件评测师】下午题·面向对象测试之架构考点全析:分层、分布式、微内核与事件驱动
经验分享·分布式·职场和发展·架构·学习方法·测试·软考
阿波罗.201219 小时前
Zookeeper 客户端 .net访问框架 ZookeeperNetEx项目开发编译
分布式·zookeeper