Apache Kafka 是一个开源分布式事件流平台,已被数千家公司用于高性能数据管道、流分析、数据集成和关键任务应用程序。
KRaft(Kafka Raft)模式是从 Apache Kafka 2.8.0 版本开始引入,KRaft 旨在摒弃对 ZooKeeper 的依赖。在以前的版本中,Apache Kafka 依赖于 ZooKeeper 来管理集群元数据和协调集群,但这增加了系统的复杂性和运维负担。KRaft 模式通过引入 Raft 协议直接在 Kafka 内部处理这些功能,从而简化了 Kafka 的架构和部署过程。
ARCHITECTURE - Apache Kafka
Kafka 官网:https://kafka.apache.org/
Kafka QuickStart:https://kafka.apache.org/documentation/#quickstart
intro - Apache Kafka:https://kafka.apache.org/intro
Know Streaming 官网:https://knowstreaming.com/
CentOS7安装部署Java11:https://blog.csdn.net/u011424614/article/details/132418561
CentOS基础操作命令:https://blog.csdn.net/u011424614/article/details/94555916
端口 | 描述 |
---|---|
9092 | Kafka Clients |
9093 | Kafka Control Plane |
8083 | Kafka Connect |
8081 | Schema Registry |
8082 | REST Proxy |
8088 | ksqlDB |
机器名 | IP | 节点部署 |
---|---|---|
Kafka-cluster-01 | 192.168.28.121 | Kafka 节点 |
Kafka-cluster-02 | 192.168.28.122 | Kafka 节点 |
Kafka-cluster-03 | 192.168.28.123 | Kafka 节点 |
Kafka-cluster-04 | 192.168.28.124 | Know Streaming 管控平台 |
# 121 执行
hostnamectl set-hostname Kafka-cluster-01 --static
hostnamectl set-hostname Kafka-cluster-01 --transient
# 122 执行
hostnamectl set-hostname Kafka-cluster-02 --static
hostnamectl set-hostname Kafka-cluster-02 --transient
# 123 执行
hostnamectl set-hostname Kafka-cluster-03 --static
hostnamectl set-hostname Kafka-cluster-03 --transient
# 124 执行
hostnamectl set-hostname Kafka-cluster-04 --static
hostnamectl set-hostname Kafka-cluster-04 --transient
# 查询状态
hostnamectl status
cat > /etc/hosts <
#--关闭防火墙
systemctl stop firewalld.service
#--开机禁用防火墙
systemctl disable firewalld.service
#--防火墙状态
systemctl status firewalld.service
在 4 台服务器上安装JDK
/opt/java/jdk-11.0.19
在 121 服务器上执行
mkdir /opt/kafka
cd /opt/kafka
# 下载
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.6.0.tgz
# 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0
vim config/kraft/server.properties
# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.121:9092
# Kafka存储日志数据的目录路径
log.dirs=/data/kraft-combined-logs
bin/kafka-storage.sh random-uuid
# 生成的 UUID
1vL12MYgT52x0C01Hny4KQ
bin/kafka-storage.sh format -t 1vL12MYgT52x0C01Hny4KQ -c config/kraft/server.properties
cd /opt/kafka/kafka_2.13-3.6.0
# 启动
bin/kafka-server-start.sh -daemon config/kraft/server.properties
# 停止
bin/kafka-server-stop.sh
jps
cd /opt/kafka/kafka_2.13-3.6.0
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092
# 写入内容
first event
second event
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092
cat > /etc/systemd/system/kafka-server.service <
systemctl daemon-reload
systemctl start kafka-server.service
systemctl enable kafka-server.service
systemctl status kafka-server.service
在 121 服务器上执行
mkdir /opt/kafka
cd /opt/kafka
# 下载
wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz --no-check-certificate
# 解压
tar -xzf kafka_2.13-3.6.0.tgz
# 进入安装目录
cd /opt/kafka/kafka_2.13-3.6.0
在 121 服务器上执行
vim config/kraft/server.properties
# 节点ID,集群节点唯一
node.id=1
# 标识哪些节点是Quorum的投票者节点
[email protected]:9093,[email protected]:9093,[email protected]:9093
# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.121:9092
# Kafka存储日志数据的目录路径
log.dirs=/data/kraft-combined-logs
在 122、123 服务器上执行
mkdir /opt/kafka
在 121 服务器上执行
scp -r /opt/kafka/kafka_2.13-3.6.0 [email protected]:/opt/kafka
scp -r /opt/kafka/kafka_2.13-3.6.0 [email protected]:/opt/kafka
在 122 服务器上执行
cd /opt/kafka/kafka_2.13-3.6.0
vim config/kraft/server.properties
# 节点ID,集群节点唯一
node.id=2
# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.122:9092
在 123 服务器上执行
cd /opt/kafka/kafka_2.13-3.6.0
vim config/kraft/server.properties
# 节点ID,集群节点唯一
node.id=3
# Kafka broker对外公布的监听地址和端口
advertised.listeners=PLAINTEXT://192.168.28.123:9092
在 121 服务器上执行
bin/kafka-storage.sh random-uuid
# 生成的 UUID
OukPqtmXSAO2aYUs9kFFbg
在 121、122、123 服务器上执行
bin/kafka-storage.sh format -t OukPqtmXSAO2aYUs9kFFbg -c config/kraft/server.properties
在 121、122、123 服务器上执行
cd /opt/kafka/kafka_2.13-3.6.0
# 启动
bin/kafka-server-start.sh -daemon config/kraft/server.properties
# 停止
bin/kafka-server-stop.sh
jps
在 121 服务器上执行
cd /opt/kafka/kafka_2.13-3.6.0
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server 192.168.28.121:9092
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server 192.168.28.121:9092
# 写入内容
first event
second event
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server 192.168.28.121:9092
在 121、122、123 服务器上执行
cat > /etc/systemd/system/kafka-server.service <
systemctl daemon-reload
systemctl start kafka-server.service
systemctl enable kafka-server.service
systemctl status kafka-server.service
在 124 服务器上执行
Know Streaming是一套云原生的Kafka管控平台,脱胎于众多互联网内部多年的Kafka运营实践经验,专注于Kafka运维管控、监控告警、资源治理、多活容灾等核心场景。在用户体验、监控、运维管控上进行了平台化、可视化、智能化的建设,提供一系列特色的功能,极大地方便了用户和运维人员的日常使用,让普通运维人员都能成为Kafka专家。
Know Streaming 部署:https://doc.knowstreaming.com/product/2-quick-start#21%E5%8D%95%E6%9C%BA%E9%83%A8%E7%BD%B2
mkdir /opt/KnowStreaming
cd /opt/KnowStreaming
# 在服务器中下载安装脚本, 该脚本中会在当前目录下,重新安装MySQL。重装后的mysql密码存放在当前目录的mysql.password文件中。
wget https://s3-gzpu.didistatic.com/pub/knowstreaming/deploy_KnowStreaming.sh
# 执行脚本(会提示选择安装的版本)
sh deploy_KnowStreaming.sh
admin
/ admin
cd /opt/KnowStreaming/KnowStreaming
# 启动
sh bin/startup.sh
# 关闭
sh bin/shutdown.sh
命令 | 说明 |
---|---|
systemctl daemon-reload | 重新加载服务配置 |
systemctl start kafka-server.service | 启动服务 |
systemctl enable kafka-server.service | 开机自启动服务 |
systemctl status kafka-server.service | 查询服务状态 |
systemctl stop kafka-server.service | 停止服务 |
systemctl restart kafka-server.service | 重启服务 |
systemctl disable kafka-server.service | 禁用开机自启动服务 |