kafka_2.12集群布署

下载kafka:

https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.5.0/kafka_2.12-2.5.0.tgz

配置JDK环境:

echo "export JAVA_HOME=/usr/local/jdk" >> /etc/profile

echo "export CLASSPATH=\$JAVA_HOME/lib:\$CLASSPATH" >> /etc/profile

echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> /etc/profile

source /etc/profile

tar -xf kafka_2.12-2.5.0.tgz

mv kafka_2.12-2.5.0 /usr/local/kafka

cd /usr/local/kafka/

 

1、zookeeper集群配置

mkdir -p /data/zookeeper

修改各节点zookeeper.properties配置文件如下:

192.168.199.140

创建集群ID文件:echo 1 > /data/zookeeper/myid

dataDir=/data/zookeeper

clientPort=2181

maxClientCnxns=0

admin.enableServer=true

admin.serverPort=8080

initLimit=5

syncLimit=2

server.1=192.168.199.140:2888:3888

server.2=192.168.199.141:2888:3888

server.3=192.168.199.142:2888:3888

192.168.199.141

创建集群ID文件:echo 2 > /data/zookeeper/myid

dataDir=/data/zookeeper

clientPort=2181

maxClientCnxns=0

admin.enableServer=true

admin.serverPort=8080

initLimit=5

syncLimit=2

server.1=192.168.199.140:2888:3888

server.2=192.168.199.141:2888:3888

server.3=192.168.199.142:2888:3888

192.168.199.142

创建集群ID文件:echo 3 > /data/zookeeper/myid

dataDir=/data/zookeeper

clientPort=2181

maxClientCnxns=0

admin.enableServer=true

admin.serverPort=8080

initLimit=5

syncLimit=2

server.1=192.168.199.140:2888:3888

server.2=192.168.199.141:2888:3888

server.3=192.168.199.142:2888:3888

配置释义:

initLimit:允许follower与leader连接和同步的时间,如果ZooKeeper管理的数据量很大,可以根据需要增加这个值。

syncLimit:允许followerleader同步的时间,如果follower远远落后于leader,他们将被丢弃。

maxClientCnxns:限制单个客户端(IP地址标识)ZooKeeper集成中的单个成员的并发连接数(在套接字级别)。这是用来防止某些类型的DoS攻击,包括文件描述符耗尽。默认值是60。将此值设置为0完全删除了并发连接的限制。

admin.enableServer:是否开启管理服务

admin.serverPort=8080:管理服务开放端口

clientPort:监听客户端连接的端口

server.id=host:port:port 对于每台服务器,您首先需要指定一个仲裁端口,然后为ZooKeeper leader选举指定一个专用端口

更多配置参数参考官网:

https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_zkMulitServerSetup

各节点启动zookeeper:

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

集群管理命令:

url示例:/commands/[command name]

更多命令参考官网:

https://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_configuration

查看zookeeper集群服务状态:

http://192.168.199.142:8080/commands/stat

curl http://localhost:8080/commands/stat

由此查看到目前192.168.199.142这台是leader节点。

 

 

2、kafka集群配置(server.properties)

192.168.199.140

broker.id=0

listeners=PLAINTEXT://192.168.199.140:9092

advertised.listeners=PLAINTEXT://192.168.199.140: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=/tmp/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=2

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=192.168.199.140:2181,192.168.199.141:2181,192.168.199.142:2181

zookeeper.connection.timeout.ms=18000

group.initial.rebalance.delay.ms=0

192.168.199.141

broker.id=1

listeners=PLAINTEXT://192.168.199.141:9092

advertised.listeners=PLAINTEXT://192.168.199.141: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=/tmp/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=2

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=192.168.199.140:2181,192.168.199.141:2181,192.168.199.142:2181

zookeeper.connection.timeout.ms=18000

group.initial.rebalance.delay.ms=0

192.168.199.142

broker.id=2

listeners=PLAINTEXT://192.168.199.142:9092

advertised.listeners=PLAINTEXT://192.168.199.142: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=/tmp/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=2

transaction.state.log.replication.factor=1

transaction.state.log.min.isr=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

zookeeper.connect=192.168.199.140:2181,192.168.199.141:2181,192.168.199.142:2181

zookeeper.connection.timeout.ms=18000

group.initial.rebalance.delay.ms=0

参数参考官网:

http://kafka.apache.org/documentation/#connect_configuring

各节点启动kafka:

bin/kafka-server-start.sh -daemon config/server.properties

创建topic:

bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.199.140:9092

查看topic详细信息:

bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server 192.168.199.140:9092

模拟生产者写消息:

$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.199.140:9092

This is my first event

This is my second event

模拟消费者读消息:

$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.199.140:9092
This is my first event
This is my second event

集群部署完成。

### 在 Windows 环境下配置和运行 Kafka_2.12-2.4.1 集群 #### 一、环境准备 为了在 Windows 上成功搭建 Kafka 集群,需要先完成以下准备工作: - 安装 Java JDK 并设置 `JAVA_HOME` 环境变量[^3]。 - 下载并解压 Apache Kafka 的二进制文件到指定目录。例如可以下载版本为 `kafka_2.12-2.4.1.tgz` 或 `.zip` 文件[^2]。 #### 二、ZooKeeper 单节点配置 由于 Kafka 使用 ZooKeeper 来管理元数据,在开始之前需确保已安装并启动单机版的 ZooKeeper 实例。可以通过如下方式验证其状态: ```bash zkServer.cmd status ``` 如果未安装,则可以从官方地址获取最新稳定版本,并按照文档说明进行初始化操作[^4]。 #### 三、多 Broker 节点规划 假设计划创建三个 broker 组成的小型测试集群 (broker.id分别为0,1,2),那么每台机器都需要单独的一份 server.properties 文件副本以及相应的日志存储路径调整。 ##### 修改配置项示例: 对于第一个Broker (`server-0.properties`) 设置如下参数: ```properties broker.id=0 listeners=PLAINTEXT://localhost:9092 log.dirs=C:\kafka\logs\broker-0 zookeeper.connect=localhost:2181 ``` 第二个Broker(`server-1.properties`) 则相应更改端口号及日志位置等字段值;依次类推直至最后一个实例为止[^5]。 #### 四、分别启动各Brokers服务进程 进入对应解压缩后的bin/windows子目录执行下面命令来逐一起动各个brokers : ```cmd .\kafka-server-start.bat ..\config\server-0.properties ``` 重复上述过程直到所有预定数量的服务均已上线即可[^6]。 #### 五、验证集群功能正常与否 利用自带工具创建主题并向其中发送消息后再读取出来确认整个链路无误 。比如新建名为test_topic的主题包含两个分区一个副本因子: ```cmd .\kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 2 --topic test_topic ``` 接着生产几条记录进去查看效果如何? ```cmd echo "This is a message" | .\kafka-console-producer.bat --broker-list localhost:9092 --topic test_topic ``` 最后通过消费端程序检验能否接收到预期的数据流输出结果吧! ```cmd .\kafka-console-consumer.bat --bootstrap-server localhost:9092 --from-beginning --topic test_topic ``` 以上就是在Windows平台之上构建起基础形态下的Kafka分布式消息队列系统的全过程概述啦!希望对你有所帮助哦~ ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值