安装 Zookeeper 和 Kafka

注意:需要java环境

复制代码
[root@hcss-ecs-2a6a ~]# java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
[root@hcss-ecs-2a6a ~]# 

1、 安装 Zookeeper

1.1 下载 Zookeeper

从 Apache 官方网站下载 Zookeeper 的安装包。这里以最新的稳定版本为例。

复制代码
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz

1.2 解压安装包

将下载的安装包解压到一个合适的目录,例如 /opt。

复制代码
sudo tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /opt

1.3 创建软链接

为了方便管理,可以创建一个软链接指向解压后的目录。

复制代码
sudo ln -s /opt/apache-zookeeper-3.7.1-bin /opt/zookeeper

1.4 配置 Zookeeper

编辑 Zookeeper 的配置文件 zoo.cfg。

复制代码
sudo mkdir -p /opt/zookeeper/data
sudo nano /opt/zookeeper/conf/zoo.cfg

在 zoo.cfg 文件中添加以下内容:

复制代码
tickTime=2000
dataDir=/opt/zookeeper/data
clientPort=2181
initLimit=5
syncLimit=2

1.5 启动 Zookeeper

启动 Zookeeper 服务。

复制代码
sudo /opt/zookeeper/bin/zkServer.sh start

验证 Zookeeper 是否启动成功:

复制代码
sudo /opt/zookeeper/bin/zkServer.sh status

2、安装 Kafka

2.1 下载 Kafka

从 Apache 官方网站下载 Kafka 的安装包。这里以最新的稳定版本为例。

复制代码
wget https://archive.apache.org/dist/kafka/3.0.0/kafka_2.13-3.0.0.tgz

2.2 解压安装包

将下载的安装包解压到一个合适的目录,例如 /opt。

复制代码
sudo tar -zxvf kafka_2.13-3.0.0.tgz -C /opt

2.3 创建软链接

为了方便管理,可以创建一个软链接指向解压后的目录。

复制代码
sudo ln -s /opt/kafka_2.13-3.0.0 /opt/kafka

2.4 配置 Kafka

编辑 Kafka 的配置文件 server.properties。

复制代码
sudo nano /opt/kafka/config/server.properties

在 server.properties 文件中进行以下配置:

复制代码
broker.id=0
listeners=PLAINTEXT://:9092
zookeeper.connect=localhost:2181
log.dirs=/opt/kafka/logs

确保 zookeeper.connect 指向你刚刚启动的 Zookeeper 服务。

2.5 创建日志目录

创建 Kafka 的日志目录。

复制代码
sudo mkdir -p /opt/kafka/logs

2.6 启动 Kafka

启动 Kafka 服务。

复制代码
sudo /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

验证 Kafka 是否启动成功:

复制代码
[root@hcss-ecs-2a6a ~]# /opt/java/jdk-17.0.12/bin/jps
18307 QuorumPeerMain
19848 Kafka
28121 ConsoleConsumer
27627 ConsoleProducer
29996 Jps

你应该能看到 Kafka 进程在运行。

3、测试 Kafka

创建一个测试主题并发送消息。

3.1 创建主题

复制代码
sudo /opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1

3.2 发送消息

复制代码
sudo /opt/kafka/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092

在打开的终端中输入一些消息,例如:

复制代码
Hello, Kafka!

3.3 消费消息

打开另一个终端,运行消费者来接收消息。

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

你应该能看到之前发送的消息。

html 复制代码
修改配置文件,添加以下内容:

# 允许外部端口连接                                            
listeners=PLAINTEXT://0.0.0.0:9092  
# 外部代理地址                                                
advertised.listeners=PLAINTEXT://1.94.145.26:9092


重启kafka
./kafka-server-stop.sh
     
./kafka-server-start.sh -daemon ../config/server.properties 
     
测试:
curl -X POST http://localhost:8080/api/kafka/publish -H "Content-Type: application/json" -d '"Hello, Kafka!"'
相关推荐
一条泥憨鱼1 天前
【消息队列】ACK确认了什么:消息队列可靠投递的完整链路
java·后端·kafka·消息队列·rabbitmq
斯普信专业组1 天前
Kafka 消费者 poll() 流程与原理详解
kafka·流程图
迅翼SwiftWing1 天前
编队系列(二)|固定翼如何依靠邻居信息保持队形?一致性控制、通信拓扑与分布式仿真实现,附仿真代码
分布式
ly76891 天前
幂等消费者与重试副作用:Kafka 端点接入时的去重边界
分布式·kafka·linq·apache camel·幂等消费者·重试副作用·去重边界
qq_452396231 天前
第三篇:《从 ZooKeeper 到 KRaft 的迁移实战:前置条件、三阶段流程与回滚策略》
分布式·zookeeper·云原生
真上帝的左手2 天前
30. 技术专题-‌应用框架组件-关系型数据库-MySQL-Mybatis
数据库·分布式·mysql·中间件·mybatis
程序猿乐锅2 天前
万字详解Single-flight(单飞模式)
java·开发语言·分布式·后端·学习·single-flight
sunny06602 天前
推理 INFRA 方法论(2):分布式推理:TP、DP、EP、CP 与 PP 的取舍
人工智能·分布式
字节探索2 天前
Redis 分布式锁:从 SETNX 误删到看门狗自动续期的原理与实践
redis·分布式
9624562 天前
容器 RUNNING,为什么中间件仍不可用?ActiveMQ 与 Kafka/ZooKeeper 恢复实录
中间件·kafka·activemq