kafka3.8集群搭建

kafka集群需要三台机器搭建,并使用内置zookeeper

IP
10.0.0.1
10.0.0.2
10.0.0.3

安装jdk

bash 复制代码
# ubuntu
sudo apt install -y openjdk-8-jdk-headless
# centos
sudo yum install -y java-1.8.0-openjdk

下载kafka

bash 复制代码
wget  https://archive.apache.org/dist/kafka/3.8.1/kafka_2.13-3.8.1.tgz 
# 创建目录
mkdir /data/kafka/logs -p
mkdir /data/kafka/zookeeper_data -p
tar -xvf  kafka_2.13-3.8.1.tgz -C /data/kafka

修改zookeeper配置文件

vim /data/kafka/kafka_2.13-3.8.1/config/zookeeper.properties

zookeeper myid 集群内不能重复的,每台机器设置成不一样的。

echo 1 > /data/zookeeper/myid

yaml 复制代码
dataDir=/data/kafka/zookeeper
# the port at which the clients will connect
clientPort=2181
# disable the per-ip limit on the number of connections since this is a non-production config
maxClientCnxns=0
# Disable the adminserver by default to avoid port conflicts.
# Set the port to something non-conflicting if choosing to enable this
admin.enableServer=false
# admin.serverPort=8080

tickTime=2000
initLimit=5
syncLimit=2
server.1=10.0.0.1:2888:3888
server.2=10.0.0.2:2888:3888
server.3=10.0.0.3:2888:3888

修改kafka配置文件

vim /data/kafka/kafka_2.13-3.8.1/config/server.properties

broker.id 每个节点需要不一样

yaml 复制代码
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://: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=/data/kafka/logs
num.partitions=3
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=24
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=10.0.0.1:2181,10.0.0.2:2181,10.0.0.3:2181

zookeeper.connection.timeout.ms=60000
group.initial.rebalance.delay.ms=0
auto.create.topics.enable = true

分别启动zookeeper和kafka

bash 复制代码
/data/kafka/kafka_2.13-3.8.1/bin/zookeeper-server-start.sh -daemon /data/kafka/kafka_2.13-3.8.1/config/zookeeper.properties && /data/kafka/kafka_2.13-3.8.1/bin/kafka-server-start.sh -daemon /data/kafka/kafka_2.13-3.8.1/config/server.properties

也可以通过配置service启动

先启动zookeeper在启动kafka

vim /etc/systemd/system/zookeeper.service

bash 复制代码
[Unit]
Description=Zookeeper service
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/data/kafka/kafka_2.13-3.8.1/bin/zookeeper-server-start.sh /data/kafka/kafka_2.13-3.8.1/config/zookeeper.properties
ExecStop=/data/kafka/kafka_2.13-3.8.1/bin/zookeeper-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target
bash 复制代码
vim /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka server (broker)
After=network.target zookeeper.service

[Service]
Type=simple
User=root
Group=root
ExecStart=/data/kafka/kafka_2.13-3.8.1/bin/kafka-server-start.sh /data/kafka/kafka_2.13-3.8.1/config/server.properties
ExecStop=/data/kafka/kafka_2.13-3.8.1/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

测试kafka

bash 复制代码
cd /data/kafka/kafka_2.13-3.8.1

# 创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testtopic

# 查看topic list
bin/kafka-topics.sh --zookeeper localhost:2181 --list

# 控制台生产消息
bin/kafka-console-producer.sh --bootstrap-server 10.0.0.2:9092 --topic testtopic

# 控制台消费消息
bin/kafka-console-consumer.sh --bootstrap-server 10.0.0.3:9092 --topic testtopic --from-beginning
相关推荐
架构师老Y4 小时前
011、消息队列应用:RabbitMQ、Kafka与Celery
python·架构·kafka·rabbitmq·ruby
talen_hx2968 小时前
《kafka核心源码解读》学习笔记 Day 02
笔记·学习·kafka
lifallen8 小时前
如何保证 Kafka 的消息顺序性?
java·大数据·分布式·kafka
真实的菜8 小时前
Kafka 2.x vs 3.x,我为什么选择升级?
kafka
时光追逐者9 小时前
分享四款开源且实用的 Kafka 管理工具
分布式·kafka·开源
Rick19939 小时前
rabbitmq, rocketmq, kafka这三种消息如何分别保住可靠性,顺序性,以及应用场景?
kafka·rabbitmq·rocketmq
☞遠航☜11 小时前
kafka快速上手
分布式·kafka·linq
工具罗某人21 小时前
docker compose部署kafka集群搭建
docker·容器·kafka
qq_297574671 天前
【Kafka 系列・入门第六篇】Kafka 集群部署(3 节点)+ 负载均衡配置
分布式·kafka·负载均衡