A2--Kafka部署
一、版本信息
|
|
|
|---|---|
| JDK | 1.8 |
| kafka | 3.3.1 |
二、集群架构
Kafka-Kraft 架构介绍
左图为 Kafka 原有架构,元数据在 zookeeper 中,运行时动态选举 controller,由controller 进行 Kafka 集群管理。
右图为 kraft 模式架构, 不再依赖 zookeeper 集群,而是用三台 controller 节点代替 zookeeper,
元数据保存在 controller 中, 由 controller 直接进行 Kafka 集群管理。
这样做的好处有以下几个:
⚫ Kafka 不再依赖外部框架, 而是能够独立运行;
⚫ controller 管理集群时, 不再需要从 zookeeper 中先读取数据, 集群性能上升;
⚫ 由于不依赖 zookeeper, 集群扩展时不再受到 zookeeper 读写能力限制;
⚫ controller 不再动态选举, 而是由配置文件规定。 这样我们可以有针对性的加强
controller 节点的配置, 而不是像以前一样对随机 controller 节点的高负载束手无策。
三、Kafka-Kraft 集群部署
1)上传 kafka 安装包并解压文件
tar -zxvf kafka_2.13-3.3.1.tgz |
2)重命名文件
mkdir /datamv kafka_2.13-3.3.1 /data/kafka |
3)修改/data/kafka/config/kraft/server.properties 配置文件
# kafka 的角色(controller 相当于主机、 broker 节点相当于从机,主机类似 zk 功能)process.roles=broker, controller# 节点 IDnode.id=1# controller 服务协议别名controller.listener.names=CONTROLLER# 全 Controller 列表controller.quorum.voters=1@192.168.11.204:9093,2@192.168.11.205:9093,3@192.168.11.206:9093# 不同服务器绑定的端口listeners=PLAINTEXT://192.168.11.204:9092,CONTROLLER://192.168.11.204:9093# broker 服务协议别名inter.broker.listener.name=PLAINTEXT# broker 对外暴露的地址advertised.Listeners=PLAINTEXT://192.168.11.204:9092# 协议别名到安全协议的映射listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL# kafka 数据存储目录log.dirs=/data/kafka/data# 新增下面内容message.max.bytes=11534336queued.max.requests=500 |
4)分发 kafka文件
scp -r /data/kafka 192.168.11.205:/datascp -r /data/kafka 192.168.11.206:/data |
⚫ 在 205 和 206 上 需 要 对 node.id 相 应 改 变 , 值 需 要 和controller.quorum.voters 对应。
⚫ 在 205 和 206 上 需 要 根 据 各 自 的 IP信息 , 修 改 相 应 的listeners和advertised.Listeners 地址。
5) 初始化集群数据目录
(1) 首先生成存储目录唯一 ID。
./bin/kafka-storage.sh random-uuid |
(2) 用该 ID 格式化 kafka 存储目录(三台节点)。
./bin/kafka-storage.sh format -t J7s9e8PPTKOO47PxzI39VA -c /data/kafka/config/kraft/server.properties |
6) 启动 kafka 集群
./bin/kafka-server-start.sh -daemon config/kraft/server.properties |
7)停止 kafka 集群
./bin/kafka-server-stop.sh |
四、添加系统服务
1)创建系统服务文件并写入内容
cat > /lib/systemd/system/kafka.service << EOF[Unit]Description=Kafka ServiceAfter=network.target[Service]Type=simpleLimitNOFILE=65535Environment="PATH=/java/jdk1.8.0_161/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"ExecStart=/opt/kafka_2.13-3.3.1/bin/kafka-server-start.sh /opt/kafka_2.13-3.3.1/config/kraft/server.propertiesExecStop=/opt/kafka_2.13-3.3.1/bin/kafka-server-stop.shRestart=always[Install]WantedBy=multi-user.targetEOF |
2)启动服务
systemctl daemon-reloadsystemctl start kafka.servicesystemctl enable kafka.service |
3)查看服务
systemctl status kafka.service |
本文来自博客园,作者:Jerry·,转载请注明原文链接:https://www.cnblogs.com/jerry-0910/p/17286126.html


浙公网安备 33010602011771号