二进制部署kafka集群

实验环境:

kafka1: 192.168.10.11
kafka2 192.168.10.12
kafka3 192.168.10.13

注意:3.0版本会有改动,建议使用2.7及以下版本

部署:

1、下载
mkdir /opt/kakfa && cd /opt/kakfa
wget https://archive.apache.org/dist/kafka/2.7.0/kafka_2.12-2.7.0.tgz
2、解压
tar xf kafka_2.12-2.7.0.tgz
3、修改配置文件
cd /opt/kafka/kafka_2.12-2.7.0

vim config/zookeeper.properties

dataDir=/opt/kafka/zookeeper
clientPort=2181
maxClientCnxns=0
server.1=kafka1:2888:3888
server.2=kafka2:2888:3888
server.3=kafka3:2888:3888
initLimit=5
syncLimit=2

mkdir -p /opt/kafka/zookeeper && echo 1 > zookeeper/myid #根据不通的节点修改数字

vim config/server.properties

broker.id=1     ##注意不通的节点需要修改此处
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.10.11:9092
log.dirs=/opt/kafka/kafka_logs
num.partitions=3
zookeeper.connect=192.168.10.11:2181,192.168.10.12:2181,192.168.10.13:2181

4、启动
./bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
./bin/kafka-server-start.sh -daemon config/server.properties

节点二、节点三重复步骤

测试kafka:
#创建topic
kafka-topics.sh --create --zookeeper 192.168.10.11:2181,192.168.10.12:2181,192.168.10.13:2181 --replication-factor 2 --partitions 3 --topic test

#查看topic
kafka-topics.sh --list --zookeeper 192.168.10.11:2181,192.168.10.12:2181,192.168.10.13:2181

#生产
kafka-console-producer.sh --broker-list 192.168.10.11:2181,192.168.10.12:2181,192.168.10.13:2181 test

#消费
kafka-console-consumer.sh --bootstrap-server 192.168.10.11:2181,192.168.10.12:2181,192.168.10.13:2181 --topic test

详细操作可查看 https://blog.youkuaiyun.com/ispringmw/article/details/108834144

### 如何在两台服务器上设置和配置Kafka集群 #### 1. 安装Java环境 确保每台服务器都已安装JDK版本8或更高版本。可以通过命令`java -version`验证是否已经安装了合适的Java版本。 #### 2. 下载并解压Apache Kafka软件包 登录到每一台目标机器,下载最新稳定版的Kafka二进制文件,并将其解压缩至指定目录[^2]。 ```bash wget https://downloads.apache.org/kafka/3.0.0/kafka_2.13-3.0.0.tgz tar -xzf kafka_2.13-3.0.0.tgz cd kafka_2.13-3.0.0 ``` #### 3. Zookeeper集群配置 由于Kafka依赖于Zookeeper来进行协调工作,在开始之前需先建立一个至少由三节点组成的Zookeeper集群(尽管这里只讨论两个服务器的情况)。按照优快云博客中的指南完成此部分操作[^1]。 #### 4. 修改Kafka配置文件 编辑`config/server.properties`文件以适应分布式环境的要求: 对于Server A (假设IP地址为 `192.168.1.1`): - 设置唯一的broker.id,比如`broker.id=0` - 更新listeners属性指向实际公网可达的主机名或IP:`advertised.listeners=PLAINTEXT://192.168.1.1:9092` 对于Server B (假设IP地址为 `192.168.1.2`): - 同样设定不同且唯一的broker.id,例如`broker.id=1` - 类似地调整对应的监听器配置项:`advertised.listeners=PLAINTEXT://192.168.1.2:9092` 以上更改使得各Broker能够被其他成员识别并与之通信。 #### 5. 启动服务 依次启动各个组件的服务实例。首先是在所有参与节点上激活各自的ZooKeeper守护程序;接着分别开启对应编号下的Kafka Broker进程。 ```bash # Start zookeeper on both servers bin/zookeeper-server-start.sh config/zookeeper.properties & # On ServerA start broker with id 0 bin/kafka-server-start.sh config/server.properties & # Repeat similar command for serverB but ensure correct path to its own properties file. ``` #### 6. 创建主题测试连接性 一旦所有的brokers都已经成功上线,则可以尝试创建一个新的topic并通过生产者发送消息给这个新Topic来检验整个集群的工作状态。 ```bash # Create a topic named 'test' replicated across all brokers bin/kafka-topics.sh --create --bootstrap-server localhost:9092 \ --replication-factor 2 --partitions 3 --topic test # Produce some messages into the newly created topic echo "This is message one" | bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test ``` 通过上述步骤可以在两台物理分离的服务器之间建立起功能完整的Kafka集群架构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值