如何部署Confluent Kafka集群?

Confluent

1 基础知识

1.1 事件

– 事件是由软件或应用程序标识或记录的操作、事件或变更
– 事件范例如、付款、网站点击或温度计读数以及发生的情况描述
– 事件是通知和状态的组合

1.2 事件流

1.2.1 事件流的概念

– 数据流指的是用于传输信息的数字编码信号序列
– 事件流属于数据流,是数据流的一个子集
需要注意的是,
– 事件流与一般的数据流处理差异在于事件流处理通常是异步的
– 事件流源于不同地方、不同类型、不同的接收顺序
– 事件流处理需要使用事件属性、事件发生时间以及可推断因果关系的其他基础元素。

1.2.2 事件流的产生背景

– 传统银行和股票交易领域、互联网监控、无限通讯网络等领域由于持续产生大量数据
– 大量的数据需要接近于实时的方式对更新数据流进行复杂的分析、预测、监控等

1.2.3 事件流的特点

– 事件流中的事件元素在线到达。
– 事件流中系统无法控制将要处理的新到达的时间元素的顺序。
– 事件流模型中查询是相对静止不变的,而数据是时刻变化的
– 事件流的潜在大小是无界的,所以能存储的数据相对事件流就数据大小就非常有限
– 事件流中的某个元素经过处理,要么被丢弃,要么被归档存储(丢弃的元素可能需要再次被访问)

1.3 Apache Kafka

1.3.1 Kafka的介绍

– Kafka是一个事件流处理平台
– Kafka是实现端到端的事件流解决方案
– Kafka是一个分布式系统
– Kafak用于大规模收集、处理、存储和集成数据
– Kafka支持分布式流、流处理、数据集成和发布和订阅消息传递

1.3.2 Kafka的功能

– Kafka支持发布(写入)和订阅(读取)事件流(包括从其他系统持续导入、导出的数据)
– Kafka支持根据需要持久可靠第存储事件流
– Kafka支持在事件发生时或回顾性地处理事件流

1.3.3 Kafka的应用场景

– Kafka可用于实时处理支持和金融交易,例如证券交易所、银行和保险中
– Kafka可用于实时跟踪和监控汽车、卡车、车队和货运,例如在物流和汽车行业
– Kafka可用于持续捕获和分析来自物联网设备或其他设备的传感器数据,例如工厂和电风扇
– Kafka可用于收集并即刻响应客户互动和订单,例如零售、酒店和旅游行业记忆移动应用程序
– Kafka可用于检测住院病人、预测病情变化,确保紧急情况下及时治疗
– Kafka可用于连接、存储和提供公司不同部门产生的数据
– Kafka可用于数据平台、事件驱动框架和微服务的基础

1.3.4 Kafka的特点

– Kafka支持分布式部署、弹性扩展,具有高可用和高度安全性
– Kafka支持裸机硬件、虚拟机、容器部署,同时支持本地和云端部署
– Kafka可跨越多个数据中心或云区域运行

1.2.5 Kafka的事件记录范例

Event key: "Alice"
Event value: "Made a payment of $200 to Bob"
Event timestamp: "Jun. 25, 2020 at 2:06 p.m."

– “Event key”声明事件的键
– “Event value”声明事件的值
– “Event timestamp”声明事件的时间戳

1.2.6 Kafka的架构

– Kafka服务器端,多台服务器组成存储层(池)称为brokers
– Kafka客户端,包括生产者(Producers)和消费者(consumers)
注:服务器与客户端通过高性能的TCP网络协议进行通讯
基本的概念是,
– 包括生产者(Producers),向Kafka发布(写入)事件的客户端程序
– 消费者(consumers),订阅(读取和处理)事件的客户端程序
需要注意的是,
– Kafka生产者和消费者完全解耦且彼此不可知(高可扩展的关键设计)
– Kafka生产者永远不需要等待消费者(由Kafak服务端提供各种保证,例如一次性处理事件的能力)
– Kafka事件被组织并持久地存储在主题(topics)中(主题类似文件夹,事件类似文件夹中的文件)
– Kafka中始终是多生产者和多订阅者(同一主题可有零个以上的生产者和消费者)
– Kafka主题被消费后不会被删除(由主题配置定义事件的保留时间,过期将被丢弃)

1.2.7 Kafka的分区


参阅上图,
– Kafka主题分区(partitioned),使得同一个主题分布存储到Kafka代理上的多分区(上图是4个分区P1-P4)
– Kafka数据的分布式存储是实现伸缩(横向扩展)的基础
– Kafka允许客户端应用程序同时从brokers读取(生产)和写入(消费)数据(上图是两个生产客户端,他们彼此独立)
– Kafka发布新事件到主题时,事件键相同(上图颜色表示)时会被写入同一个分区(实质是事件附加到主题分区之一)
– Kafka始终保证消费者以与写入事件完全相同的顺序读取该分区的事件

1.2.7 Kafka的API

– Kafak以Java和Scala提供五个核心API
– Producer API支持将事件流发布到一个以上的Kafka主题
– Consumer API支持订阅一个以上的Kafak主题
– Kafka Streams API支持实现流处理应用程序和微服务(支持转换、聚合和连接、窗口化、基于事件处理、转换流到新主题等操作)
– Kafka Connect API支持构建和运行可重用的数据IO连接器(连接器支持从外部读写事件流,例捕获PostgreSQL表的更新事件流)

1.3 安装环境

需要注意角色的内存需求以及系统需要,详细请参阅下文,
https://docs.confluent.io/platform/current/installation/system-requirements.html#system-requirements

2 最佳实践

2.1 系统环境配置

2.1.1 硬件与系统

Broker,
CPU = 加倍的12 Core CPU
RAM = 64GB
OS = RHEL 8.x x86_64
HDD = 12*1TB RAID 10(系统与数据分离)
IP Address = 10.168.0.8[0-3] Host Name = cfkafka0[1-4].cmdschool.org
Network = 1 – 10 GbE

ZooKeeper,
CPU = 2 -4 cores
RAM = 4GB
OS = RHEL 8.x x86_64
HDD = 2*1TB RAID 10(传输日志512GB)
IP Address = 10.168.0.8[0-3] Host Name = cfkafka0[1-4].cmdschool.org

Control Center-Normal mode,
CPU = 12 cores以上
RAM = 32GB
OS = RHEL 8.x x86_64
HDD = 300GB
IP Address = 10.168.0.80
Host Name = cfkafka01.cmdschool.org

2.1.2 配置NTP服务

In cfkafka0[1-4],

dnf install -y chrony
systemctl start chronyd.service
systemctl enable chronyd.service

另外,时区也应该设置,

timedatectl set-timezone Asia/Shanghai

2.1.3 配置名称解析(可选)

In cfkafka0[1-4],

echo '10.168.0.80 cfkafka01 cfkafka01.cmdschool.org' >> /etc/hosts
echo '10.168.0.81 cfkafka02 cfkafka02.cmdschool.org' >> /etc/hosts
echo '10.168.0.82 cfkafka03 cfkafka03.cmdschool.org' >> /etc/hosts
echo '10.168.0.83 cfkafka04 cfkafka04.cmdschool.org' >> /etc/hosts

注:以上仅仅用于测试,生产环境请使用DNS代替

2.1.4 关闭SELinux

In cfkafka0[1-4],

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

2.1.5 关闭防火墙

In cfkafka0[1-4],

systemctl stop firewalld.service
systemctl disable firewalld.service

2.2 软件环境

In cfkafka0[1-4],

2.2.1 配置Java运行时

需要安装Java以下运行时,
– Java 8
– Java 11
对应的,我们参阅以下文档安装openJDK 11.0.2,

如何部署openJDK?


简略地,你需要执行如下命令配置openJDK,

tar -xf openjdk-11.0.2_linux-x64_bin.tar.gz
mkdir /usr/java
mv jdk-11.0.2/ /usr/java/
echo 'export JAVA_HOME=/usr/java/jdk-11.0.2' > /etc/profile.d/jdk.sh
echo 'export JRE_HOME=${JAVA_HOME}/jre' >> /etc/profile.d/jdk.sh
echo 'export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib' >> /etc/profile.d/jdk.sh
echo 'export PATH=${JAVA_HOME}/bin:$PATH' >> /etc/profile.d/jdk.sh
source /etc/profile

然后,使用如下命令确认安装,

java -version

可见如下显示,

openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

另外,建议执行如下命令将Java设置默认的Java,

ln -s /usr/java/jdk-11.0.2/bin/java /usr/bin/java

2.2.2 安装辅助工具包

dnf install -y curl which

2.3 部署软件包

In cfkafka0[1-4],

2.3.1 配置安装源

vim /etc/yum.repos.d/confluent.repo

加入如下配置,

[Confluent]
name=Confluent repository
baseurl=https://packages.confluent.io/rpm/7.1/
gpgcheck=1
gpgkey=https://packages.confluent.io/rpm/7.1/archive.key
enabled=1

[Confluent-Clients]
name=Confluent Clients repository
baseurl=https://packages.confluent.io/clients/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.confluent.io/clients/rpm/archive.key
enabled=1

2.3.2 安装软件包

dnf install -y confluent-platform

2.4 配置ZooKeeper服务

2.4.1 定义配置文件

In cfkafka0[2-4],

cp /etc/kafka/zookeeper.properties /etc/kafka/zookeeper.properties.default
vim /etc/kafka/zookeeper.properties

配置修改如下,

tickTime=2000
dataDir=/var/lib/zookeeper/
clientPort=2181
initLimit=5
syncLimit=2
server.2=cfkafka02:2888:3888
server.3=cfkafka03:2888:3888
server.4=cfkafka04:2888:3888
autopurge.snapRetainCount=3
autopurge.purgeInterval=24

根据以上配置,需要为主机创建“myid”,详细使用如下命令,
In cfkafka02,

echo 2 > /var/lib/zookeeper/myid

In cfkafka03,

echo 3 > /var/lib/zookeeper/myid

In cfkafka04,

echo 4 > /var/lib/zookeeper/myid

然后,我们可以使用如下命令手动启动服务测试,

sudo -u cp-kafka /usr/bin/zookeeper-server-start /etc/kafka/zookeeper.properties

注:按下【CTRL + C】终止服务

2.5.2 修改启动控制脚本

vim /usr/lib/systemd/system/confluent-zookeeper.service

修改如下配置,

[Unit]
Description=Apache Kafka - ZooKeeper
Documentation=http://docs.confluent.io/
After=network.target

[Service]
Type=simple
User=cp-kafka
Group=confluent
ExecStart=/bin/sh -c '. /etc/profile;/usr/bin/zookeeper-server-start /etc/kafka/zookeeper.properties'
ExecStop=/bin/sh -c '. /etc/profile;/usr/bin/zookeeper-server-start /etc/kafka/zookeeper.properties'
LimitNOFILE=100000
TimeoutStopSec=180
Restart=always

[Install]
WantedBy=multi-user.target

修改完成后,你需要使用如下命令重载服务,

systemctl daemon-reload

2.4.3 启动ZooKeeper

systemctl start confluent-zookeeper
systemctl enable confluent-zookeeper

然后,可以使用如下命令查看启动的进程号和端口号,

pgrep -a -u cp-kafka java | grep zookeeper | cut -d" " -f1
netstat -antp | grep `pgrep -a -u cp-kafka java | grep zookeeper | cut -d" " -f1` | grep :::

最后一条命令显示如下,

tcp6       0      0 :::2181                 :::*                    LISTEN      16171/java
tcp6       0      0 :::37455                :::*                    LISTEN      16171/java
tcp6       0      0 :::8080                 :::*                    LISTEN      16171/java

2.4.4 测试服务ZooKeeper服务

zookeeper-shell cfkafka02:2181 version
zookeeper-shell cfkafka03:2181 version
zookeeper-shell cfkafka04:2181 version

2.5 配置Kafka服务

2.5.1 定义配置文件

In cfkafka02,

cp /etc/kafka/server.properties /etc/kafka/server.properties.default
vim /etc/kafka/server.properties

配置修改如下,

broker.id=2
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://cfkafka02:9092
log.dirs=/data/kafka
num.partitions=3
log.retention.hours=168
zookeeper.connect=cfkafka02:2181,cfkafka03:2181,cfkafka04:2181
default.replication.factor=3
sage.max.bytes=16777216
min.insync.replicas=2
inter.broker.protocol.version=3.1.0
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=1
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
confluent.license.topic.replication.factor=3
confluent.metadata.topic.replication.factor=3
confluent.security.event.logger.exporter.kafka.topic.replicas=1
confluent.balancer.enable=true
confluent.balancer.topic.replication.factor=3

In cfkafka03,

cp /etc/kafka/server.properties /etc/kafka/server.properties.default
vim /etc/kafka/server.properties

配置修改如下,

broker.id=3
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://cfkafka03:9092
log.dirs=/data/kafka
num.partitions=3
log.retention.hours=168
zookeeper.connect=cfkafka02:2181,cfkafka03:2181,cfkafka04:2181
default.replication.factor=3
sage.max.bytes=16777216
min.insync.replicas=2
inter.broker.protocol.version=3.1.0
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=1
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
confluent.license.topic.replication.factor=3
confluent.metadata.topic.replication.factor=3
confluent.security.event.logger.exporter.kafka.topic.replicas=1
confluent.balancer.enable=true
confluent.balancer.topic.replication.factor=3

In cfkafka04,

cp /etc/kafka/server.properties /etc/kafka/server.properties.default
vim /etc/kafka/server.properties

配置修改如下,

broker.id=4
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://cfkafka04:9092
log.dirs=/data/kafka
num.partitions=3
log.retention.hours=168
zookeeper.connect=cfkafka02:2181,cfkafka03:2181,cfkafka04:2181
default.replication.factor=3
sage.max.bytes=16777216
min.insync.replicas=2
inter.broker.protocol.version=3.1.0
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=1
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
confluent.license.topic.replication.factor=3
confluent.metadata.topic.replication.factor=3
confluent.security.event.logger.exporter.kafka.topic.replicas=1
confluent.balancer.enable=true
confluent.balancer.topic.replication.factor=3

根据配置的需求,我们需要创建如下文件夹,

mkdir -p /data/kafka
chown cp-kafka:confluent -R /data/kafka
chmod 755 -R /data/kafka

2.5.2 修改启动控制脚本

vim /usr/lib/systemd/system/confluent-server.service

修改如下配置,

[Unit]
Description=Apache Kafka - broker
Documentation=http://docs.confluent.io/
After=network.target confluent-zookeeper.service

[Service]
Type=simple
User=cp-kafka
Group=confluent
ExecStart=/bin/sh -c '. /etc/profile;/usr/bin/kafka-server-start /etc/kafka/server.properties'
ExecStop=/bin/sh -c '. /etc/profile;/usr/bin/kafka-server-stop /etc/kafka/server.properties'
LimitNOFILE=1000000
TimeoutStopSec=180
Restart=always

[Install]
WantedBy=multi-user.target

修改完成后,你需要使用如下命令重载服务,

systemctl daemon-reload

2.5.3 启动Kafka

systemctl start confluent-server
systemctl enable confluent-server

以上命令适用于正式版本的Kafak启动,社区版本请使用如下命令启动,

systemctl start confluent-kafka
systemctl enable confluent-kafka

服务启动后,如果有需要你可以参阅如下日志解决启动的故障,

tail -f /var/log/kafka/server.log

然后,可以使用如下命令查看启动的进程号和端口号,

pgrep -a -u cp-kafka java | grep kafkaServer | cut -d" " -f1
netstat -antp | grep `pgrep -a -u cp-kafka java | grep kafkaServer | cut -d" " -f1` | grep :::

最后一条命令显示如下,

tcp6       0      0 :::8090                 :::*                    LISTEN      16758/java
tcp6       0      0 :::42783                :::*                    LISTEN      16758/java
tcp6       0      0 :::9092                 :::*                    LISTEN      16758/java

2.6 清空集群数据(可选且生产环境慎用)

2.6.1 停止并清空Kafak数据

In cfkafka0[2-4],

systemctl stop confluent-server
rm -rf /data/kafka/*
rm -rf /var/log/kafka/*

2.6.2 停止并清空Zookeeper数据

In cfkafka0[2-4],

systemctl stop confluent-zookeeper
rm -rf /var/lib/zookeeper/version*

2.6.3 启动Zookeeper服务

In cfkafka0[2-4],

systemctl start confluent-zookeeper
systemctl status confluent-zookeeper

2.6.4 启动Kafak服务

In cfkafka0[2-4],

systemctl start confluent-server
systemctl status confluent-server

2.7 配置Schema Registry

In cfkafka01,

2.7.1 修改服务配置

cp /etc/schema-registry/schema-registry.properties /etc/schema-registry/schema-registry.properties.default
vim /etc/schema-registry/schema-registry.properties

配置修改如下,

listeners=http://0.0.0.0:8081
kafkastore.bootstrap.servers=PLAINTEXT://cfkafka02:9092,PLAINTEXT://cfkafka03:9092,PLAINTEXT://cfkafka04:9092
kafkastore.topic=_schemas
host.name=cfkafka01.cmdschool.org
debug=false

2.7.2 修改启动控制脚本

vim /usr/lib/systemd/system/confluent-schema-registry.service

修改如下配置,

[Unit]
Description=RESTful Avro schema registry for Apache Kafka
Documentation=http://docs.confluent.io/
After=network.target

[Service]
Type=simple
User=cp-schema-registry
Group=confluent
Environment="LOG_DIR=/var/log/confluent/schema-registry"
ExecStart=/bin/sh -c '. /etc/profile;/usr/bin/schema-registry-start /etc/schema-registry/schema-registry.properties'
ExecStop=/bin/sh -c '. /etc/profile;/usr/bin/schema-registry-stop /etc/schema-registry/schema-registry.properties'
TimeoutStopSec=180
Restart=always

[Install]
WantedBy=multi-user.target

修改完成后,你需要使用如下命令重载服务,

systemctl daemon-reload

2.7.3 启动服务并设置启动

systemctl start confluent-schema-registry
systemctl enable confluent-schema-registry

服务启动后,如果有需要你可以参阅如下日志解决启动的故障,

tail -f /var/log/confluent/schema-registry/schema-registry.log

然后,可以使用如下命令查看启动的进程号和端口号,

pgrep -u cp-schema-registry java
netstat -antp | grep `pgrep -u cp-schema-registry java` | grep :::

最后一条命令显示如下,

tcp6       0      0 :::8081                 :::*                    LISTEN      53315/java
tcp6       0      0 :::45729                :::*                    LISTEN      53315/java

2.8 配置控制中心服务

2.8.1 启用Confluent Metrics Reporter

In cfkafka[2-4],

cp /etc/kafka/server.properties /etc/kafka/server.properties.save
vim /etc/kafka/server.properties

添加如下配置,

metric.reporters=io.confluent.metrics.reporter.ConfluentMetricsReporter
confluent.metrics.reporter.bootstrap.servers=cfkafka02:9092,cfkafka03:9092,cfkafka04:9092
confluent.metrics.reporter.topic.replicas=1

配置修改后,你需要重启服务使配置生效,

systemctl restart confluent-server

2.8.2 修改Kafka链接配置

In cfkafka[2-4],

cp /etc/kafka/connect-distributed.properties /etc/kafka/connect-distributed.properties.default
vim /etc/kafka/connect-distributed.properties

添加如下配置,

consumer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor
producer.interceptor.classes=io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor

然后你需要重启服务使配置生效,

systemctl restart confluent-server

2.8.3 修改控制中心配置

In cfkafka01,

cp /etc/confluent-control-center/control-center-production.properties /etc/confluent-control-center/control-center-production.properties.default
vim /etc/confluent-control-center/control-center-production.properties

配置修改如下,

bootstrap.servers=cfkafka02:9092,cfkafka03:9092,cfkafka04:9092
zookeeper.connect=cfkafka02:2181,cfkafka03:2181,cfkafka04:2181
confluent.controlcenter.data.dir=/var/lib/confluent/control-center
confluent.controlcenter.ui.autoupdate.enable=true
confluent.controlcenter.usage.data.collection.enable=true

2.8.4 修改启动控制脚本

vim /usr/lib/systemd/system/confluent-control-center.service

修改如下配置,

[Unit]
Description=Confluent Control Center
Documentation=http://docs.confluent.io/
After=network.target confluent-schema-registry.service

[Service]
Type=simple
User=cp-control-center
Group=confluent
EnvironmentFile=/etc/default/confluent-control-center
ExecStart=/bin/sh -c '. /etc/profile;/usr/bin/control-center-start /etc/confluent-control-center/control-center-production.properties'
ExecStop=/bin/sh -c '. /etc/profile;/usr/bin/control-center-stop /etc/confluent-control-center/control-center-production.properties'
TimeoutStopSec=180
LimitNOFILE=100000
Restart=always

[Install]
WantedBy=multi-user.target

根据以上配置,你需要使用如下命令创建环境变量配置,

vim /etc/default/confluent-control-center

添加如下配置,

LOG_DIR=/var/log/confluent/control-center
CONTROL_CENTER_LOG4J_OPTS=-Dlog4j.configuration=file:/etc/confluent-control-center/log4j-rolling.properties

修改完成后,你需要使用如下命令重载服务,

systemctl daemon-reload

2.8.5 启动控制中心服务

systemctl start confluent-control-center
systemctl enable confluent-control-center

服务启动后,如果有需要你可以参阅如下日志解决启动的故障,

tail -f /var/log/confluent/control-center/control-center.log

然后,可以使用如下命令查看启动的进程号和端口号,

pgrep -u cp-control-center java
netstat -antp | grep `pgrep -u cp-control-center java` | grep :::

最后一条命令显示如下,

tcp6       0      0 :::45779                :::*                    LISTEN      54921/java
tcp6       0      0 :::9021                 :::*                    LISTEN      54921/java

2.8.6 测试控制中心登录

http://cfkafka01.cmdschool.org:9021/

2.9 配置REST Proxy服务

2.9.1 修改服务配置

In cfkafka[2-4],

cp /etc/kafka-rest/kafka-rest.properties /etc/kafka-rest/kafka-rest.properties.default
vim /etc/kafka-rest/kafka-rest.properties

修改如下参数,

bootstrap.servers=PLAINTEXT://cfkafka02:9092,PLAINTEXT://cfkafka04:9092,PLAINTEXT://cfkafka04:9092

2.9.2 启动服务并设置启动

systemctl start confluent-kafka-rest
systemctl enable confluent-kafka-rest

服务启动后,如果有需要你可以参阅如下日志解决启动的故障,

tail -f /var/log/confluent/kafka-rest/kafka-rest.log

然后,可以使用如下命令查看启动的进程号和端口号,

pgrep -u cp-kafka-rest java
netstat -antp | grep `pgrep -u cp-kafka-rest java` | grep :::

最后一条命令显示如下,

tcp6       0      0 :::8082                 :::*                    LISTEN      57090/java
tcp6       0      0 :::40099                :::*                    LISTEN      57090/java

2.10 其他附加配置

如何配置Confluent Kafka TLS/SSL?

如何配置Confluent Kafka基本认证?

如何配置Confluent Kafka connect?

如何部署Confluent ksqlDB集群?

参阅文档
===================

安装文档
———–
https://docs.confluent.io/platform/current/installation/installing_cp/rhel-centos.html#systemd-rhel-centos-install

https://docs.confluent.io/ansible/current/ansible-install.html

Apache-Kafak介绍
—————–
https://developer.confluent.io/what-is-apache-kafka/?_ga=2.8948343.354434908.1654848226-363825177.1654848226

Confluent平台的介绍
——————-
https://docs.confluent.io/platform/current/kafka/kafka-basics.html

安装环境要求
——————-
https://docs.confluent.io/platform/current/installation/system-requirements.html#system-requirements

Java与openJDK的对应关系
————————
https://www.oracle.com/java/technologies/javase/jdk8-naming.html
https://blogs.oracle.com/java/post/oracle-jdk-releases-for-java-11-and-later

Java的版本历史
—————–
https://en.wikipedia.org/wiki/Java_version_history

Kafka配置
——————-
https://docs.confluent.io/platform/current/kafka/deployment.html#cp-production-parameters

控制中心的配置
—————–
https://docs.confluent.io/platform/current/control-center/installation/configuration.html#controlcenter-configuration

错误处理
—————–
https://stackoverflow.com/questions/61023514/how-to-configure-single-broker-for-confluent-control-center
https://stackoverflow.com/questions/40316862/the-group-coordinator-is-not-available-kafka
https://javamana.com/2022/151/202205311536007487.html
https://stackoverflow.com/questions/62770272/notenoughreplicasexception-the-size-of-the-current-isr-set2-is-insufficient-t
启动配置
————–
http://www.jinbuguo.com/systemd/systemd.service.html

没有评论

发表评论

Confluent
如何更新Kafka topic的Replication Factor?

1 前言 一个问题,一篇文章,一出故事。 笔者部署完Confluent Kafka集群后发现Kafk …

Confluent
如何部署Confluent ksqlDB集群?

1 基础知识 1.1 KSQL 1.1.1 KSQL的概念 – KSQL与SQL数据库完 …

Confluent
如何修复Kafka主题connect-configs报错?

1 前言 一个问题,一篇文章,一出故事。 笔者安装完成Kafka connect后发现Kafka疯狂 …