Kafka单机/集群部署
准备工作:
- JDK (Java Development Kit): 确保你的机器上已经安装了 Java 8 或更高版本。
- 操作系统: Linux (推荐),macOS 或 Windows (可以使用 WSL)。
- Apache Kafka 安装包: 从 Apache Kafka 官网下载最新版本的 Kafka 安装包 (例如:
kafka_2.13-x.x.x.tgz
)。 - 网络连接: 确保你的机器可以访问互联网 (用于下载依赖)。
一、单机部署 (Standalone Mode):
下载 Kafka:
- 访问 Apache Kafka 官网: https://kafka.apache.org/downloads
- 下载二进制安装包 (例如:
kafka_2.13-x.x.x.tgz
)。
解压 Kafka:
BASHtar -xzf kafka_2.13-x.x.x.tgz cd kafka_2.13-x.x.x
- 将
x.x.x
替换为你下载的版本号。
- 将
启动 Zookeeper:
- Kafka 依赖于 Zookeeper,单机模式下,可以使用 Kafka 自带的 Zookeeper。
bin/zookeeper-server-start.sh config/zookeeper.properties
- 该命令会在后台启动 Zookeeper 服务。
启动 Kafka Broker:
bin/kafka-server-start.sh config/server.properties
- 该命令会在后台启动 Kafka Broker 服务。
创建 Topic:
bin/kafka-topics.sh --create --topic my-topic --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
my-topic
: 你要创建的 Topic 名称。--partitions 1
: 分区数量为 1。--replication-factor 1
: 副本数量为 1。--bootstrap-server localhost:9092
: Kafka Broker 的地址。
生产者 (Producer):
bin/kafka-console-producer.sh --topic my-topic --bootstrap-server localhost:9092
- 该命令会启动一个控制台生产者,你可以输入消息并发送到 Kafka。
消费者 (Consumer):
bin/kafka-console-consumer.sh --topic my-topic --from-beginning --bootstrap-server localhost:9092
- 该命令会启动一个控制台消费者,你可以接收并查看 Kafka 中的消息。
--from-beginning
: 表示从 Topic 的开头开始消费。
二、集群部署 (Cluster Mode):
准备多台机器:
- 你需要准备至少 3 台机器,用于部署 Kafka 集群。
- 确保每台机器的 JDK 版本一致。
- 确保每台机器之间可以互相通信。
下载 Kafka (每台机器):
- 在每台机器上重复单机部署的步骤 1 和 2,下载并解压 Kafka。
配置 Zookeeper (集群):
选择一台机器作为 Zookeeper 主节点,在主节点上修改
config/zookeeper.properties
文件:TEXTdataDir=/tmp/zookeeper clientPort=2181 initLimit=5 syncLimit=2 server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
dataDir
: Zookeeper 数据存储目录。clientPort
: Zookeeper 客户端连接端口。server.1
,server.2
,server.3
: Zookeeper 集群的节点地址,请替换为实际的 IP 地址或主机名。zoo1
,zoo2
,zoo3
是主机名,你需要将它们解析到对应的IP地址。
在其他 Zookeeper 节点上修改
config/zookeeper.properties
文件:- 只需要修改
dataDir
和server
配置,确保server
配置和主节点一致。 - 在每个 Zookeeper 节点上创建
myid
文件:
BASHecho "1" > /tmp/zookeeper/myid # zoo1节点 echo "2" > /tmp/zookeeper/myid # zoo2节点 echo "3" > /tmp/zookeeper/myid # zoo3节点
- 只需要修改
启动 Zookeeper (每台机器):
bin/zookeeper-server-start.sh config/zookeeper.properties
配置 Kafka Broker (每台机器):
- 在每台机器上修改
config/server.properties
文件:
TEXTbroker.id=0 # 每台机器的 broker.id 都不一样 listeners=PLAINTEXT://192.168.1.101:9092 # 每台机器的 IP 地址不一样 log.dirs=/tmp/kafka-logs zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181 # Zookeeper 集群地址
broker.id
: 每个 Broker 的唯一 ID,每台机器都应该不同 (例如:0, 1, 2)。listeners
: Kafka Broker 的监听地址,需要设置为每台机器的实际 IP 地址。log.dirs
: Kafka 日志存储目录。zookeeper.connect
: Zookeeper 集群的地址。
- 在每台机器上修改
启动 Kafka Broker (每台机器):
bin/kafka-server-start.sh config/server.properties
创建 Topic:
bin/kafka-topics.sh --create --topic my-topic --partitions 3 --replication-factor 3 --bootstrap-server 192.168.1.101:9092,192.168.1.102:9092,192.168.1.103:9092
--partitions 3
: 分区数量为 3。--replication-factor 3
: 副本数量为 3。--bootstrap-server
: Kafka Broker 的地址,多个地址之间用逗号分隔。
生产者 (Producer):
bin/kafka-console-producer.sh --topic my-topic --bootstrap-server 192.168.1.101:9092,192.168.1.102:9092,192.168.1.103:9092
消费者 (Consumer):
bin/kafka-console-consumer.sh --topic my-topic --from-beginning --bootstrap-server 192.168.1.101:9092,192.168.1.102:9092,192.168.1.103:9092
注意事项:
- IP 地址和主机名: 请根据实际情况替换命令中的 IP 地址和主机名。
- 防火墙: 确保你的防火墙允许 Kafka 和 Zookeeper 的端口通信。
- 资源分配: 根据你的需求,合理分配 Kafka 和 Zookeeper 的资源。
- 配置优化: 根据实际情况优化 Kafka 和 Zookeeper 的配置参数。
- 版本: 请确保你下载的是最新版本的 Kafka 安装包。
版权申明
本文系作者 @Tis-FYM 原创发布在Tis-FYI站点。未经许可,禁止转载。
评论