Centos7系统部署搭建Kafka集群

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
MSE Nacos 企业版免费试用,1600元额度,限量50份
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 搭建kafka集群至少需要3台服务器(或虚拟机也可),我们提前准备好3台不同IP的服务器

一、环境准备

1.1 服务器准备

搭建kafka集群至少需要3台服务器(或虚拟机也可),我们提前准备好3台不同IP的服务器

|ip|hostname|
|--||
| 192.168.2.83 | kafkaserver1|
| 192.168.2.84 | kafkaserver2|
| 192.168.2.86 | kafkaserver3|

1.2 版本信息

kafak:2.13-3.4.0;
JDK:1.8+;

1.3 启动kafka环境

1.3.1 获取kafka

首先下载最新版kafka,再解压安装:

$ tar -xzf kafka_2.13-3.4.0.tgz
$ cd kafka_2.13-3.4.0

完成后可以得到一个kafka的文件夹,我这里是直接放在桌面的,各位可以根据自己需求选择文件夹存放。
1.png

1.3.2 启动kafka

Apache Kafka 可以使用 ZooKeeper 或 KRaft 启动,但不能同时使用。

1.3.2.1 kafka && ZooKeeper

以前的kafka之前还需要准备zookeeper环境,新版的kafka中自带由,免去了很多麻烦。

第一步:按顺序启动所有服务:

# Start the ZooKeeper service
$ bin/zookeeper-server-start.sh config/zookeeper.properties

第二步:打开另一个终端会话并运行:

# Start the Kafka broker service
$ bin/kafka-server-start.sh config/server.properties

kafka的bin目录带有zookeeper:
2.png

以上两步命令运行后,可以看到kafka服务已经启动:
3.png

1.3.2.2 kafak && KRaft

第一步:生成集群 UUID

$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"

第二步:格式化日志

$ bin/kafka-storage.sh format -t $KAFKA_CLUSTER_ID -c config/kraft/server.properties

第三步:启动卡夫卡服务器

$ bin/kafka-server-start.sh config/kraft/server.properties

以上三步命令运行后,同理可以看到kafka服务已经启动,这里就不演示了。

1.4 创建主题

kafka的事件储存在主题中,主题类似于文件系统中的文件夹,事件是该文件夹中的文件。所以,在使用前必须为事件创建主题。

打开另一个终端会话并运行

$ bin/kafka-topics.sh --create --topic kafka-topic-test --bootstrap-server localhost:9092

4.png

Kafka 的所有命令行工具都有额外的选项:运行kafka-topics.sh不带任何参数的命令以显示使用信息。例如,显示 新主题的 分区计数等详细信息:

$ bin/kafka-topics.sh --describe --topic kafka-topic-test --bootstrap-server localhost:9092

5.png

1.5 事件写入主题

Kafka 客户端通过网络与 Kafka 代理通信以写入(或读取)事件。一旦收到,代理将以持久和容错的方式存储事件。

默认情况下,输入的每一行都会导致一个单独的事件被写入主题。

$ bin/kafka-console-producer.sh --topic kafka-topic-test --bootstrap-server localhost:9092
one
two

6.png

1.6 事件读取

打开另一个终端会话并运行控制台消费者客户端以读取事件:

$ bin/kafka-console-consumer.sh --topic kafka-topic-test --from-beginning --bootstrap-server localhost:9092

7.png

1.7 停止kafka环境

使用 停止生产者和消费者客户Ctrl-C。 使用 停止 Kafka 代理Ctrl-C。如果使用 Kafka && ZooKeeper,还需要停止 ZooKeeper 服务器 Ctrl-C。

如果还想删除本地 Kafka 环境的任何数据,包括在此过程中创建的任何事件,请运行以下命令

$ rm -rf /tmp/kafka-logs /tmp/zookeeper /tmp/kraft-combined-logs

二、搭建 kafka 集群

前提条件:按照第一步骤的方法为列出的三台服务器全部安装 kakfa 。
我们这里用的 kafka && ZooKeeper 模式,所以先要搭建 zookeeper 集群。

2.1 ZooKeeper 集群搭建

2.1.1 配置文件修改

我们前面已经安装好了单机版的 kafak,它自带 ZooKeeper,现在我们对它们进行配置搭建集群。

cd kafka_2.13-3.4.0/
cd config/
vim zookeeper.properties

修改zookeeper.properties文件:

1.修改文件目录

dataDir=/var/zookeeper
#添加
initLimit=5
syncLimit=2
tickTime=2000

2.添加服务节点

server.1=192.168.2.83:2888:3888
server.2=192.168.2.84:2888:3888
server.3=192.168.2.86:2888:3888

像下面这样:
8.png

3.创建数据文件夹

# 新建zookeeper.properties 中配置的dataDir目录
mkdir /var/zookeeper
cd /var/zookeeper
# 新建myid文件,三个节点分别设置值为1,2,3
touch myid
echo 1 > /var/zookeeper/myid

4.启动时可能会遇到以下报错:
9.png

这个时候请检查端口是否放开,若没有则有两种方法:

  1. 关闭防火墙
#sudo systemctl stop firewalld
  1. 或者防火墙放行
firewall-cmd --zone=public --add-port=2181/tcp --permanent 
firewall-cmd --zone=public --add-port=3888/tcp --permanent 
firewall-cmd --zone=public --add-port=2888/tcp --permanent
firewall-cmd --reload

然后在其他的2个服务器重重复上面的步骤,(注意节点设置)

2.2 kafka 集群搭建

2.2.1 kafka 配置修改

1.修改server.properties

#每个节点唯一
broker.id=1
#填写本地IP
listeners=PLAINTEXT://192.168.2.83:9092
#这里有几个成员就写几个
zookeeper.connect=192.168.2.83:2181,192.168.2.84:2181,192.168.2.86:2181
#我这里有三台机器所以设置下面的属性为3
offsets.topic.replication.factor=3 transaction.state.log.replication.factor=3 transaction.state.log.min.isr=3
group.initial.rebalance.delay.ms=3

2.启动 kafka
10.png

3.如果启动报以下错误

11.png

则对meta.properties进行修改,该文件默认在 /tmp/kafka-logs

修改其cluster.id等于Cluster ID即可。

2.2.1 kafka 集群测试

搭建完成后,我们简单的测试一下是否成功。

我们在节点 192.168.2.73上启动一个发布者进行消息发布,在节点192.168.2.84和192.168.2.86上分别启动一个消费者进行事件的消费。

2.2.1.1 创建测试用主题

我们首先创建一个主题 topic-test,并指定分区为 0,读取模式为从头读取,并连接本地服务器。

bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.83:9092 --offset latest --partition 0 --topic topic-test

2.2.1.2 创建消费者

随后我们在每个集群服务其上创建消费者,并指定地址为本地地址

bin/kafka-console-consumer.sh --bootstrap-server 192.168.2.83:9092 --offset latest --partition 0 --topic topic-test

2.2.1.3 创建发布者

随便选一台服务器创建发布者,指定集群列表和主题,并发布消息:

bin/kafka-console-producer.sh  --topic topic-test --broker-list 192.168.2.83:9092,192.168.2.84:9092,192.168.2.86:9092

2.2.1.4 测试结果

发布者:
12.png

消费者
13.png

测试成功!

目录
相关文章
|
2月前
|
Linux 应用服务中间件 nginx
在CentOS上部署Minikube教程
至此,您已成功在CentOS上部署并使用Minikube。您可以自由探索Kubernetes的世界,熟练配置和管理Kubernetes集群。
217 20
|
2月前
|
消息中间件 数据可视化 Kafka
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
167 10
|
3月前
|
消息中间件 运维 Java
搭建Zookeeper、Kafka集群
本文详细介绍了Zookeeper和Kafka集群的搭建过程,涵盖系统环境配置、IP设置、主机名设定、防火墙与Selinux关闭、JDK安装等基础步骤。随后深入讲解了Zookeeper集群的安装与配置,包括数据目录创建、节点信息设置、SASL认证配置及服务启动管理。接着描述了Kafka集群的安装,涉及配置文件修改、安全认证设置、生产消费认证以及服务启停操作。最后通过创建Topic、发送与查看消息等测试验证集群功能。全网可搜《小陈运维》获取更多信息。
266 1
|
4月前
|
消息中间件 人工智能 安全
秒级灾备恢复:Kafka 2025 AI自愈集群下载及跨云Topic迁移终极教程
Apache Kafka 2025作为企业级实时数据中枢,实现五大革新:量子安全传输(CRYSTALS-Kyber抗量子加密算法)、联邦学习总线(支持TensorFlow Federated/Horizontal FL框架)、AI自愈集群(MTTR缩短至30秒内)、多模态数据处理(原生支持视频流、3D点云等)和跨云弹性扩展(AWS/GCP/Azure间自动迁移)。平台采用混合云基础设施矩阵与软件依赖拓扑设计,提供智能部署架构。安装流程涵盖抗量子安装包获取、量子密钥配置及联邦学习总线设置。
|
7月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
1680 1
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
7月前
|
消息中间件 存储 Kafka
2024最全Kafka集群方案汇总
Apache Kafka 是一个高吞吐量、可扩展、可靠的分布式消息系统,广泛应用于数据驱动的应用场景。Kafka 支持集群架构,具备高可用性和容错性。其核心组件包括 Broker(服务器实例)、Topic(消息分类)、Partition(有序消息序列)、Producer(消息发布者)和 Consumer(消息消费者)。每个分区有 Leader 和 Follower,确保数据冗余和高可用。Kafka 2.8+ 引入了不依赖 Zookeeper 的 KRaft 协议,进一步简化了集群管理。常见的集群部署方案包括单节点和多节点集群,后者适用于生产环境以确保高可用性。
315 0
|
Linux 网络安全 开发工具
centos7部署l2tp ipsec
1、查询操作系统版本 #cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) 2、查询系统是否支持ppp,返回yes代表通过。 #modprobe ppp-compress-18 && echo yes 3、查询系统是否开启了tun,返回File descriptor in bad state代表通过。
8239 0
|
2天前
|
Linux
在 CentOS 上安装 OpenVPN 客户端连接配置
本文介绍了如何在 Linux 系统上安装并配置 OpenVPN 客户端,连接公司或服务器局域网。内容包括使用 yum 安装 OpenVPN、配置客户端文件(.ovpn 和密码文件),以及通过命令行连接和测试网络。附有参考链接解决常见问题。
78 1
|
21天前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
68 18
|
2月前
|
Kubernetes Linux 开发者
在CentOS 7.8上使用kubeadm安装k8s 1.26
至此,你已经在CentOS 7.8上使用kubeadm成功安装了k8s 1.26。你可以通过输入 `kubectl get nodes`来查看节点状态,如果显示为Ready,那么恭喜你,你的Kubernetes集群已经准备好了。
159 23