赞
踩
部署一个 Apache Kafka 集群在 Linux 环境中通常涉及以下几个关键步骤。这里以 CentOS 7 为例,假设您已经准备好了多台 Linux 服务器(至少三台以保证高可用性),并且已经安装了必要的依赖(如 Java)。以下是详细的部署流程:
sudo yum install java-1.8.0-openjdk-devel
sudo firewall-cmd --permanent --add-port=2181/tcp
sudo firewall-cmd --permanent --add-port=9092/tcp
sudo firewall-cmd --reload
Kafka 通常依赖 ZooKeeper 存储集群元数据。按照以下步骤部署 ZooKeeper 集群:
wget https://downloads.apache.org/zookeeper/stable/apache-zookeeper-<version>-bin.tar.gz
tar xzf apache-zookeeper-<version>-bin.tar.gz
mv apache-zookeeper-<version>-bin /usr/local/zookeeper
/usr/local/zookeeper/conf/zoo.cfg
文件,设置如下内容:tickTime=2000
initLimit=5
syncLimit=2
dataDir=/var/lib/zookeeper
clientPort=2181
# 添加集群节点信息
server.1=<node1_ip>:2888:3888
server.2=<node2_ip>:2888:3888
server.3=<node3_ip>:2888:3888
dataDir
目录下创建一个名为 myid
的文件,内容分别为 1
、2
、3
,对应 zoo.cfg
中的 server.X
。echo 1 > /var/lib/zookeeper/myid
cd /usr/local/zookeeper/bin
./zkServer.sh start
wget https://downloads.apache.org/kafka/<version>/kafka_<scala_version>-<version>.tgz
tar xzf kafka_<scala_version>-<version>.tgz
mv kafka_<scala_version>-<version> /usr/local/kafka
/usr/local/kafka/config/server.properties
文件,设置如下内容:broker.id=<unique_broker_id>
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=/var/log/kafka
zookeeper.connect=<node1_ip>:2181,<node2_ip>:2181,<node3_ip>:2181
group.initial.rebalance.delay.ms=0
确保为每个 Kafka 节点分配一个唯一的 broker.id
。
mkdir -p /var/log/kafka
chown -R kafka:kafka /var/log/kafka
cd /usr/local/kafka/bin
./kafka-server-start.sh ../config/server.properties &
./kafka-topics.sh --create --bootstrap-server <any_node_ip>:9092 --replication-factor 3 --partitions 3 --topic test-topic
./kafka-topics.sh --describe --bootstrap-server <any_node_ip>:9092 --topic test-topic
# 发布消息
./kafka-console-producer.sh --bootstrap-server <any_node_ip>:9092 --topic test-topic
# 在另一个终端窗口中消费消息
./kafka-console-consumer.sh --bootstrap-server <another_node_ip>:9092 --topic test-topic --from-beginning
至此,您已在 Linux 环境中成功部署了一个基于 ZooKeeper 的 Kafka 集群,并进行了初步的验证。在实际生产环境中,还需要考虑更多因素,如配置文件的持久化、服务自动启动、日志管理、监控报警、安全设置(如 SASL 或 SSL 加密)等。如果您计划使用 Kafka 3.5.1 及以上版本,可以考虑使用内置的 KRaft 模式替代 ZooKeeper 进行集群部署。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。