Kafka单机及集群部署及基础命令

目录

      • 一、 Kafka介绍
        • 1、kafka定义
        • 2、传统消息队列应用场景
        • 3、kafka特点和优势
        • 4、kafka角色介绍
        • 5、分区和副本的优势
        • 6、kafka 写入消息的流程
      • 二、Kafka单机部署
        • 1、基础环境
        • 2、iptables -L -n配置
        • 3、下载并解压kafka部署包至/usr/local/目录
        • 4、修改server.properties
        • 5、修改/etc/profile
        • 6、执行/etc/profile
        • 7、启动kafka
      • 三、Kafka集群部署
        • 1、基础环境
        • 2、集群
        • 3、iptables -L -n配置
        • 4、下载并解压kafka部署包至/usr/local/目录(cnode1执行)
        • 5、修改/etc/profile(cnode1执行)
        • 6、执行/etc/profile(cnode1执行)
        • 7、创建存储目录(cnode1执行)
        • 8、克隆出cnode2和cnode3
        • 9、修改zookeeper配置文件(所有节点执行)
        • 10、cnode1新增myid配置(cnode1执行)
        • 11、cnode2新增myid配置(cnode2执行)
        • 12、cnode2新增myid配置(cnode3执行)
        • 13、修改cnode1节点kafka配置
        • 14、修改cnode2节点kafka配置
        • 15、修改cnode3节点kafka配置
        • 16、启动zookeeper(所有节点执行)
        • 17、启动kafka(所有节点执行)
        • 18、也可以用脚本启动/停止(所有节点执行)
      • 四、Kafka基础命令
        • 一、KAFKA启停命令
        • 二、Topic 相关命令
        • 三、消息相关命令
        • 四、消费者Group
        • 五、其他

一、 Kafka介绍

1、kafka定义

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

2、传统消息队列应用场景

削峰填谷
诸如电商业务中的秒杀、抢红包、企业开门红等大型活动时皆会带来较高的流量脉冲,或因没做相应的保护而导致系统超负荷甚至崩溃,或因限制太过导致请求大量失败而影响用户体验,消息队列可提供削峰填谷的服务来解决该问题。

异步解耦
交易系统作为淘宝等电商的最核心的系统,每笔交易订单数据的产生会引起几百个下游业务系统的关注,包括物流、购物车、积分、流计算分析等等,整体业务系统庞大而且复杂,消息队列可实现异步通信和应用解耦,确保主站业务的连续性。

顺序收发
细数日常中需要保证顺序的应用场景非常多,例如证券交易过程时间优先原则,交易系统中的订单创建、支付、退款等流程,航班中的旅客登机消息处理等等。与先进先出FIFO(First In First Out)原理类似,消息队列提供的顺序消息即保证消息FIFO。

分布式事务一致性
交易系统、支付红包等场景需要确保数据的最终一致性,大量引入消息队列的分布式事务,既可以实现系统之间的解耦,又可以保证最终的数据一致性。

分布式缓存同步
电商的大促,各个分会场琳琅满目的商品需要实时感知价格变化,大量并发访问数据库导致会场页面响应时间长,集中式缓存因带宽瓶颈,限制了商品变更的访问流量,通过消息队列构建分布式缓存,实时通知商品数据的变化。

3、kafka特点和优势

特点:

  • 分布式: 多机实现,不允许单机
  • 分区: 一个消息.可以拆分出多个,分别存储在多个位置
  • 多副本: 防止信息丢失,可以多来几个备份
  • 多订阅者: 可以有很多应用连接kafka
  • Zookeeper: 早期版本的Kafka依赖于zookeeper, 2021年4月19日Kafka 2.8.0正式发布,此版本包括了很多重要改动,最主要的是kafka通过自我管理的仲裁来替代ZooKeeper,即Kafka将不再需要ZooKeeper!!!

优势:

  • 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。支持通过Kafka 服务器分区消息。
  • 分布式: Kafka 基于分布式集群实现高可用的容错机制,可以实现自动的故障转移。
  • 顺序保证:在大多数使用场景下,数据处理的顺序都很重要。大部分消息队列本来就是排序的,并且能保证数据会按照特定的顺序来处理。 Kafka保证一个Partiton内的消息的有序性(分区间数据是无序的,如果对数据的顺序有要求,应将在创建主题时将分区数partitions设置为1)。
  • 支持 Hadoop 并行数据加载。
  • 通常用于大数据场合,传递单条消息比较大,而Rabbitmq 消息主要是传输业务的指令数据,单条数据较小。
4、kafka角色介绍

(1)Producer: Producer即生产者,消息的产生者,是消息的入口。负责发布消息到Kafka broker
(2)Consumer: 消费者,用于消费消息,即处理消息
Broker:Broker是kafka实例,每个服务器上可以有一个或多个kafka的实例,假设每个broker对应一台服务器。每个kafka集群内的broker都有一个不重复的编号,如: broker-0、broker-1等……
(3)Topic : 消息的主题,可以理解为消息的分类,一个Topic相当于数据库中的一张表,一条消息相当于关系数据库的一条记录,一个Topic或者相当于Redis中列表类型的一个Key,一条消息即为列表中的一个元素。kafka的数据就保存在topic。在每个broker上都可以创建多个topic。物理上不同 topic 的消息分开存储在不同的文件夹,逻辑上一个 topic的消息虽然保存于一个或多个broker 上, 但用户只需指定消息的topic即可生产或消费数据而不必关心数据存于何处,topic 在逻辑上对record(记录、日志)进行分组保存,消费者需要订阅相应的topic 才能消费topic中的消息
(4)Consumer group: 每个consumer 属于一个特定的consumer group(可为每个consumer 指定 group name,若不指定 group name 则属于默认的group),同一topic的一条消息只能被同一个consumer group 内的一个consumer 消费,类似于一对一的单播机制,但多个consumer group 可同时消费这一消息,类似于一对多的多播机制
(5)Partition : 是物理上的概念,每个topic 分割为一个或多个partition,即一个topic切分为多份.创建 topic时可指定 partition 数量,partition的表现形式就是一个一个的文件夹,该文件夹下存储该partition的数据和索引文件,分区的作用还可以实现负载均衡,提高kafka的吞吐量。同一个topic在不同的分区的数据是不重复的,一般Partition数不要超过节点数,注意同一个partition数据是有顺序的,但不同的partition则是无序的
(6)Replication: 同样数据的副本,包括leader和follower的副本数,基本于数据安全,建议至少2个,是Kafka的高可靠性的保障,和ES的副本有所不同,Kafka中的副本数包括主分片数,而ES中的副本数不包括主分片数

为了实现数据的高可用,比如将分区 0 的数据分散到不同的kafka 节点,每一个分区都有一个 broker 作为 Leader 和一个 broker 作为Follower,类似于ES中的主分片和副本分片。

假设分区为 3, 即分三个分区0-2,副本为3,即每个分区都有一个 leader,再加两个follower,分区 0 的leader为服务器A,则服务器 B 和服务器 C 为 A 的follower,而分区 1 的leader为服务器B,则服务器 A 和C 为服务器B 的follower,而分区 2 的leader 为C,则服务器A 和 B 为C 的follower。

AR: Assigned Replicas,分区中的所有副本的统称,包括leader和 follower,AR= lSR+ OSR
lSR:ln Sync Replicas,所有与leader副本保持同步的副本 follower和leader本身组成的集合,包括leader和 follower,是AR的子集
OSR:out-of-Sync Replied,所有与leader副本同步不能同步的 follower的集合,是AR的子集

5、分区和副本的优势
  • 实现存储空间的横向扩容,即将多个kafka服务器的空间组合利用
  • 提升性能,多服务器并行读写
  • 实现高可用,每个分区都有一个主分区即 leader 分布在不同的kafka 服务器,并且有对应follower 分布在和leader不同的服务器上
6、kafka 写入消息的流程
  • 生产者(producter)先从kafka集群获取分区的leader
  • 生产者(producter)将消息发送给leader
  • leader将消息写入本地文件
  • followers从leader pull消息
  • followers将消息写入本地后向leader发送ACK
  • leader收到所有副本的ACK后向producter发送ACK

二、Kafka单机部署

1、基础环境
查看centos版本
[root@localhost config]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
查看java版本
[root@localhost config]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)
2、iptables -L -n配置
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9090
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9104
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3000
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9092
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:2181
3、下载并解压kafka部署包至/usr/local/目录
tar -zxvf kafka_2.12-3.1.1.tgz -C /usr/local/
4、修改server.properties
vim /usr/local/kafka_2.12-3.1.1/config/server.properties修改以下内容
listeners=PLAINTEXT://192.168.15.128:9092
advertised.listeners=PLAINTEXT://192.168.15.128:9092
log.dirs=/data/kafka/logs
zookeeper.connect=localhost:2181(local改成192.168.15.128会报错[2024-12-03 11:17:06,427] INFO [ZooKeeperClient Kafka server] Closing. (kafka.zookeeper.ZooKeeperClient))
5、修改/etc/profile
vim /etc/profile新增:
export KAFKA_HOME=/usr/local/kafka_2.12-3.1.1
export PATH=$KAFKA_HOME/bin:$PATH
6、执行/etc/profile
source /etc/profile
7、启动kafka
先启动zookeeper
/usr/local/kafka_2.12-3.1.1/bin/zookeeper-server-start.sh /usr/local/kafka_2.12-3.1.1/config/zookeeper.properties查看是否启动
netstat -tuln | grep 2181再启动kafka
/usr/local/kafka_2.12-3.1.1/bin/kafka-server-start.sh /usr/local/kafka_2.12-3.1.1/config/server.properties查看是否启动
netstat -tuln | grep 9092
jps #有kafka则为启动后台启动
/usr/local/kafka_2.12-3.1.1/bin/zookeeper-server-start.sh -daemon /usr/local/kafka_2.12-3.1.1/config/zookeeper.properties/usr/local/kafka_2.12-3.1.1/bin/zookeeper-server-start.sh -daemon /usr/local/kafka_2.12-3.1.1/config/server.properties

在这里插入图片描述

在这里插入图片描述

三、Kafka集群部署

1、基础环境
查看centos版本
[root@localhost config]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
查看java版本
[root@localhost config]# java -version
openjdk version "1.8.0_412"
OpenJDK Runtime Environment (build 1.8.0_412-b08)
OpenJDK 64-Bit Server VM (build 25.412-b08, mixed mode)
2、集群
IP主机名
192.168.15.130cnode1
192.168.15.131cnode2
192.168.15.132cnode3
3、iptables -L -n配置
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3306
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:21
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9090
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9104
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3000
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:9092
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:2181
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:3888
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:2888
4、下载并解压kafka部署包至/usr/local/目录(cnode1执行)
tar -zxvf kafka_2.12-3.1.1.tgz -C /usr/local/
5、修改/etc/profile(cnode1执行)
vim /etc/profile新增:
export KAFKA_HOME=/usr/local/kafka_2.12-3.1.1
export PATH=$KAFKA_HOME/bin:$PATH
6、执行/etc/profile(cnode1执行)
source /etc/profile
7、创建存储目录(cnode1执行)
mkdir -p /opt/software/kafka/log
mkdir -p /opt/software/kafka/zookeeper
mkdir -p /opt/software/kafka/zookeeper/log
8、克隆出cnode2和cnode3
9、修改zookeeper配置文件(所有节点执行)
进入配置目录
cd /usr/local/kafka_2.12-3.1.1/config/
备份zookeeper配置文件
mv zookeeper.properties zookeeper.properties.bak
新建zookeeper配置文件
vi /usr/local/kafka_2.12-3.1.1/config/zookeeper.properties
输入以下内容
dataDir=/opt/software/kafka/zookeeper  
dataLogDir=/opt/software/kafka/zookeeper/log 
clientPort=2181
maxClientCnxns=100
tickTimes=2000
initLimit=10
syncLimit=5
server.0=192.168.56.101:2888:3888
server.1=192.168.56.103:2888:3888
server.2=192.168.56.104:2888:3888
10、cnode1新增myid配置(cnode1执行)
vim/opt/software/kafka/zookeeper/myid
输入以下内容
0
11、cnode2新增myid配置(cnode2执行)
vim/opt/software/kafka/zookeeper/myid
输入以下内容
1
12、cnode2新增myid配置(cnode3执行)
vim/opt/software/kafka/zookeeper/myid
输入以下内容
2
13、修改cnode1节点kafka配置
进入配置目录
cd /usr/local/kafka_2.12-3.1.1/config/
备份kafka配置文件
mv server.properties server.properties.bak
新建server配置文件broker.id=0
listeners=PLAINTEXT://192.168.15.130:9092
advertised.listeners=PLAINTEXT://192.168.15.130: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=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.15.130:2181,192.168.15.131:2181,192.168.15.132:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
14、修改cnode2节点kafka配置
进入配置目录
cd /usr/local/kafka_2.12-3.1.1/config/
备份kafka配置文件
mv server.properties server.properties.bak
新建server配置文件broker.id=1
listeners=PLAINTEXT://192.168.15.131:9092
advertised.listeners=PLAINTEXT://192.168.15.131: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=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.15.130:2181,192.168.15.131:2181,192.168.15.132:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
15、修改cnode3节点kafka配置
进入配置目录
cd /usr/local/kafka_2.12-3.1.1/config/
备份kafka配置文件
mv server.properties server.properties.bak
新建server配置文件broker.id=2
listeners=PLAINTEXT://192.168.15.132:9092
advertised.listeners=PLAINTEXT://192.168.15.132: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=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.15.130:2181,192.168.15.131:2181,192.168.15.132:2181
zookeeper.connection.timeout.ms=18000
group.initial.rebalance.delay.ms=0
16、启动zookeeper(所有节点执行)
/usr/local/kafka_2.12-3.1.1/bin/zookeeper-server-start.sh /usr/local/kafka_2.12-3.1.1/config/zookeeper.properties查看是否启动
netstat -tuln | grep 2181
17、启动kafka(所有节点执行)
/usr/local/kafka_2.12-3.1.1/bin/kafka-server-start.sh /usr/local/kafka_2.12-3.1.1/config/server.properties查看是否启动
netstat -tuln | grep 9092
18、也可以用脚本启动/停止(所有节点执行)
启动脚本
[root@localhost config]# cat /usr/local/kafka_2.12-3.1.1/kafkaStart.sh 
/usr/local/kafka_2.12-3.1.1/bin/zookeeper-server-start.sh /usr/local/kafka_2.12-3.1.1/config/zookeeper.properties &
sleep 10 
/usr/local/kafka_2.12-3.1.1/bin/kafka-server-start.sh /usr/local/kafka_2.12-3.1.1/config/server.properties &
停止脚本
[root@localhost config]# cat /usr/local/kafka_2.12-3.1.1/kafkaStop.sh  
/usr/local/kafka_2.12-3.1.1/bin/zookeeper-server-stop.sh /usr/local/kafka_2.12-3.1.1/config/zookeeper.properties &
sleep 10 
/usr/local/kafka_2.12-3.1.1/bin/kafka-server-stop.sh /usr/local/kafka_2.12-3.1.1/config/server.properties &
将脚本复制到cnode2和cnode3节点
scp kafkaStart.sh kafkaStop.sh root@cnode2:$PWD
scp kafkaStart.sh kafkaStop.sh root@cnode3:$PWD
执行以下脚本启动
sh /usr/local/kafka_2.12-3.1.1/kafkaStart.sh
执行以下脚本停止
sh /usr/local/kafka_2.12-3.1.1/kafkaStop.sh 

四、Kafka基础命令

一、KAFKA启停命令
1. 前台启动(先启动zookeeper)
bin/zookeeper-server-start.sh config/zookeeper.propertiesbin/kafka-server-start.sh config/server.properties
2. 后台启动
bin/zookeeper-server-start.sh -daemon config/zookeeper.propertiesbin/kafka-server-start.sh -daemon config/server.properties
或者
nohup bin/kafka-server-start.sh config/server.properties &
指定 JMX port 端口启动,指定 jmx,可以方便监控 Kafka 集群
JMX_PORT=9991 /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
3. 停止命令
bin/zookeeper-server-stop.shbin/kafka-server-stop.sh
二、Topic 相关命令
1.创建 Topic
--topic 指定 Topic 名
-–partitions 指定分区数
-–replication-factor 指定备份(副本)数,注意:指定副本因子的时候,不能大于broker实例个数,否则报错
bin/kafka-topics.sh --create --bootstrap-server 192.168.15.130:9092 --replication-factor 1 --partitions 1 --topic demo22.查询Topic列表
/usr/local/kafka_2.12-3.1.1/bin/kafka-topics.sh --bootstrap-server 192.168.15.130:9092 --list3.查询 Topic 详情
bin/kafka-topics.sh --describe --bootstrap-server 192.168.15.130:9092 --topic demo4. 增加 Topic 的 partition 数
bin/kafka-topics.sh --bootstrap-server 192.168.15.130:9092 --alter --topic demo --partitions 25. 查看 topic 指定分区 offset 的最大值或最小值
time 为 -1 时表示最大值,为 -2 时表示最小值:
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --topic test_kafka_topic --time -1 --broker-list 192.168.15.130:9092 --partitions 0 6.删除Topic
说明:在${KAFKA_HOME}/config/server.properties中配置 delete.topic.enable 为 true,这样才能生效,删除指定的 topic主题
bin/kafka-topics.sh --bootstrap-server 192.168.15.130:9092 --delete --topic demo2
三、消息相关命令
1.发送消息
bin/kafka-console-producer.sh --broker-list 192.168.15.130:9092 --topic demo
消费消息(从头开始)
bin/kafka-console-consumer.sh --bootstrap-server 192.168.15.130:9092  --from-beginning --topic demo
2.消费消息(从尾开始)
bin/kafka-console-consumer.sh --bootstrap-server 192.168.15.130:9092 --topic demo --offset latest
3.消费消息(从尾开始指定分区)
bin/kafka-console-consumer.sh --bootstrap-server 192.168.15.130:9092 --topic demo --offset latest --partition 0
4.消费消息(指定分区指定偏移量)
bin/kafka-console-consumer.sh --bootstrap-server 192.168.15.130:9092 --topic demo  --partition 0 --offset 100 
5.指定分组->消费消息
注意给客户端命名之后,如果之前有过消费,那么–from-beginning就不会再从头消费了
bin/kafka-console-consumer.sh --bootstrap-server 192.168.15.130:9092  --from-beginning --topic demo --group t1
6.取指定个数
bin/kafka-console-consumer.sh --bootstrap-server 192.168.15.130:9092 --topic demo --offset latest --partition 0 --max-messages 1
7.指定分组从头开始消费消息(应该会指定偏移量)
bin/kafka-console-consumer.sh --bootstrap-server 192.168.15.130:9092 --topic demo -group t2 --from-beginning
四、消费者Group
1.消费者Group列表
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.15.130:9092 --list
2.查看Group详情
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.15.130:9092 --group test_group --describe
3.删除 Group中Topic
bin/kafka-consumer-groups.sh --bootstrap-server 192.168.15.130:9092 --group test_group --topic demo --delete
4.删除Group
/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server 192.168.15.130:9092 --group test_group --delete
五、其他
1.平衡leader
bin/kafka-preferred-replica-election.sh --bootstrap-server 192.168.15.130:9092
2.自带压测工具
bin/kafka-producer-perf-test.sh --topic test --num-records 100 --record-size 1 --throughput 100 --producer-props bootstrap.servers=192.168.15.130:9092 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888801.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker部署的gitlab升级的详细步骤(升级到17.6.1版本)

文章目录 一、Gitlab提示升级信息二、老版本的docker运行gitlab命令三、备份老版本Gitlab数据四、确定升级路线五、升级(共分3个版本升级)5.1 升级第一步(17.1.2 > 17.3.7)5.2 升级第二步(17.3.7 > 17.5.3)5.3 升级第三步(17.5.3 > 17.6.1) 六、web端访问gitlab服务 一…

在Java的xml的sql语句里面的某一个参数是list集合的时候

经常在Java里面,遇到这样的问题,sql的一个查询语句,它的某一个参数是一个List集合,然而,在xml.mapper文件里面的时候,不知道如何去组成这个查询语句,不知道兄弟们是否经常忘记如何去写这个语句&…

前端技术(23) : 聊天页面

来源: GPT生成之后微调 效果图 HTML代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>聊天</t…

内存图及其画法

所有的文件都存在硬盘上&#xff0c;首次使用的时候才会进入内存 进程&#xff1a;有自己的Main方法&#xff0c;并且依赖自己Main运行起来的程序。独占一块内存区域&#xff0c;互不干扰。内存中有一个一个的进程。 操作系统只认识c语言。操作系统调度驱动管理硬件&#xff0…

树与图深度优先遍历——acwing

题目一&#xff1a;树的重心 846. 树的重心 - AcWing题库 分析 采用暴力枚举&#xff0c;试探每个点&#xff0c;除去之后&#xff0c;连通分量最大值是多少&#xff0c; 各个点的最大值找最小的 因为可以通过 dfs 来得到 根u以下点数&#xff0c;以及可以求各分树的点数&am…

Qt Qtablewidget 标题 QHeaderView 增加可选框 QcheckBox

创建自定义QHeaderView #pragma once#include <QObject> #include <QHeaderView> #include <QPainter> #include <QMouseEvent>class SSHeaderView : public QHeaderView {Q_OBJECTprivate:bool isChecked;int m_checkColIdx; public:SSHeaderView(i…

Data Uncertainty Learning in Face Recognition 论文阅读

Data Uncertainty Learning in Face Recognition 论文阅读 Abstract1. Introduction2. Related Work3. Methodology3.1. Preliminaries3.2. Classification-based DUL for FR3.3. Regression-based DUL for FR3.4. Discussion of Related Works 4. Experiments4.1. Datasets an…

基础算法——搜索与图论

搜索与图论 图的存储方式2、最短路问题2.1、Dijkstra算法&#xff08;朴素版&#xff09;2.2、Dijkstra算法&#xff08;堆优化版&#xff09;2.3、Bellman-Ford算法2.4、SPFA求最短路2.5、SPFA判负环2.6、Floyd算法 图的存储方式 2、最短路问题 最短路问题可以分为单源最短路…

典型常见的知识蒸馏方法总结一

来源&#xff1a;https://github.com/HobbitLong/RepDistiller收录的方法 NeurIPS2015: Distilling the Knowledge in a Neural Network 知识蒸馏开山之作&#xff0c;从logits中蒸馏知识&#xff0c;KL散度损失 ICLR2015&#xff1a;FitNets: Hints for Thin Deep Nets A h…

十、软件设计架构-微服务-服务调用Feign

文章目录 前言一、Feign介绍1. 什么是Feign2. 什么是Http客户端3. Feign 和 OpenFeign 的区别 二、Feign底层原理三、Feign工作原理详解1. 动态代理机制2. 动态代理的创建过程3. 创建详细流程4. FeignClient属性 四、Feign使用1. 常规调用2.日志打印3. 添加Header 前言 服务调…

在 LS-DYNA 中将应力转换为用户定义的坐标系

介绍 通常&#xff0c;使用 LS-DYNA 或 Ansys Mechanical 等仿真工具解决工程问题需要将张量结果与解析解进行比较。一个这样的例子是加压圆柱体&#xff0c;其中圆周应力或环状应力是感兴趣的主要应力度量。例如&#xff0c;如果对具有复杂端部处理的几何结构进行此类仿真&am…

树莓集团是如何链接政、产、企、校四个板块的?

树莓集团作为数字影像行业的积极探索者与推动者&#xff0c;我们通过多维度、深层次的战略举措&#xff0c;将政、产、企、校四个关键板块紧密链接在一起&#xff0c;实现了资源的高效整合与协同发展&#xff0c;共同为数字影像产业的繁荣贡献力量。 与政府的深度合作政府在产业…

工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet

论文&#xff1a;https://arxiv.org/pdf/2311.14897v3.pdf 项目&#xff1a;https://github.com/chopper-233/anomaly-shapenet 这篇论文主要关注的是3D异常检测和定位&#xff0c;这是一个在工业质量检查中至关重要的任务。作者们提出了一种新的方法来合成3D异常数据&#x…

debian ubuntu armbian部署asp.net core 项目 开机自启动

我本地的环境是 rk3399机器&#xff0c;安装armbian系统。 1.安装.net core 组件 sudo apt-get update && \sudo apt-get install -y dotnet-sdk-8.0或者安装运行库&#xff0c;但无法生成编译项目 sudo apt-get update && \sudo apt-get install -y aspnet…

qt QNetworkAccessManager详解

1、概述 QNetworkAccessManager是QtNetwork模块中的一个核心类&#xff0c;它允许应用程序发送网络请求并接收响应。该类是网络通信的基石&#xff0c;提供了一种方便的方式来处理常见的网络协议&#xff0c;如HTTP、HTTPS等。QNetworkAccessManager对象持有其发送的请求的通用…

21、结构体成员分布

结构体中的成员并不是紧挨着分布的&#xff0c;内存分布遵循字节对齐的原则。 按照成员定义的顺序&#xff0c;遵循字节对齐的原则存储。 字节对齐的原则&#xff1a; 找成员中占据字节数最大的成员&#xff0c;以它为单位进行空间空配 --- 遇到数组看元素的类型 每一个成员距离…

前端基础——CSS

美化文档 HTML内部添加样式 本节我们来学习如何在标签中引入CSS样式。 1 在标签中添加声明 声明的关键字是style后接等号&#xff08;&#xff09;再接引号&#xff08;""&#xff09;&#xff0c;即style"" 具体声明如下&#xff1a; <input typ…

WPS解决Word文件引入excel对象文件无法打开提示“不能启动此对象...”的问题

一、问题现象 接收到了一份 Word文件&#xff0c;里面引入了一个Excel对象文件&#xff0c;双击时候&#xff0c;wps出现卡顿&#xff0c;过一会之后弹出错误提示&#xff1a;不能启动此对象... 二、解决方法 1.点击WPS左上角图标&#xff0c;并打开右上角设置&#xff0c;萱蕚…

spring下的beanutils.copyProperties实现深拷贝

spring下的beanutils.copyProperties方法是深拷贝还是浅拷贝&#xff1f;可以实现深拷贝吗&#xff1f; 答案&#xff1a;浅拷贝。 一、浅拷贝深拷贝的理解 简单说拷贝就是将一个类中的属性拷贝到另一个中&#xff0c;对于BeanUtils.copyProperties来说&#xff0c;你必须保…

3GPP R18 LTM(L1/L2 Triggered Mobility)是什么鬼?(三) RACH-less LTM cell switch

这篇看下RACH-less LTM cell switch。 相比于RACH-based LTM,RACH-less LTM在进行LTM cell switch之前就要先知道target cell的TA信息,进而才能进行RACH-less过程,这里一般可以通过UE自行测量或者通过RA过程获取,而这里的RA一般是通过PDCCH order过程触发。根据38.300中的描…