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.properties

bin/kafka-server-start.sh config/server.properties
2. 后台启动
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

bin/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.sh

bin/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 demo2

2.查询Topic列表
/usr/local/kafka_2.12-3.1.1/bin/kafka-topics.sh --bootstrap-server 192.168.15.130:9092 --list

3.查询 Topic 详情
bin/kafka-topics.sh --describe --bootstrap-server 192.168.15.130:9092 --topic demo

4. 增加 Topic 的 partition 数
bin/kafka-topics.sh --bootstrap-server 192.168.15.130:9092 --alter --topic demo --partitions 2

5. 查看 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 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python中的列表、元组、字典的介绍与使用

目录 一、区别介绍 1.使用场景以及区别图 2.详细介绍 列表 元组 字典 二、例子操作 (一)列表list 1.定义和初始化 2.访问元素(下标) 3.修改元素(下标) 4.添加元素(append、下标insert) 5.删除…

WiFi受限不再愁,电脑无网络快速修复指南

有时在试图连接WiFi时,会发现网络连接受限,或无法正常访问互联网。这种情况不仅影响了工作效率,还可能错过重要的信息。那么,究竟是什么原因导致了电脑WiFi连接受限呢?又该如何解决这一问题呢?小A今天就来教…

【技巧】Mac上如何显示键盘和鼠标操作

在制作视频教程时,将键盘和鼠标的操作在屏幕上显示出来,会帮助观众更容易地理解。 推荐Mac上两款开源的小软件。 1. KeyCastr 这款工具从2009年至今一直在更新中。 https://github.com/keycastr/keycastr 安装的话,可以从Github上下载最…

c++ map对其值排序

无法直接排序,转换成vector<std::pair<string,int>> #include <iostream> #include <map> #include <vector> #include <algorithm>// 用于排序的比较函数 bool compareByValue(const std::pair<std::string, int>& a, const …

调度器、闲逛进程

调度器、闲逛进程 一、调度器/调度程序二、闲逛进程 一、调度器/调度程序 ②、③由调度程序引起&#xff0c;调度程序决定&#xff1a; 让谁运行&#xff1f;-- 调度算法 运行多长时间&#xff1f;-- 时间片大小 调度时机 – 什么事件会触发“调度程序”&#xff1f; ∙ \bull…

第七节(1)、T型加减速转动【51单片机-TB6600驱动器-步进电机教程】

摘要&#xff1a;本节介绍步进电机T型加减速的控制方法&#xff0c;分2个小节&#xff0c;本小节主要内容为该控制方法的推导与计算&#xff0c;第二节对T型加减速进行了简化计算 一.加速阶段计算 1.1 计算时间与步数关系 根据位移公式可得&#xff1a; a n g l e 0 n ∗ s…

利用 360 安全卫士极速版关闭电脑开机自启动软件教程

在使用电脑的过程中&#xff0c;过多的开机自启动软件会严重拖慢电脑的开机速度&#xff0c;影响我们的使用体验。本教程中简鹿办公将详细介绍如何使用 360 安全卫士极速版关闭电脑开机自启动软件&#xff0c;让您的电脑开机更加迅速流畅。 一、打开 360 安全卫士极速版 在电…

车联网安全学习之TBOX

Telematics BOX&#xff0c;简称 T-BOX&#xff0c;也称远程信息处理控制单元&#xff08;Telematics Control Unit, TCU&#xff09;&#xff0c;集成GPS、外部通信接口、电子处理单元、微控制器、移动通信单元和存储器等功能模块。 TBOX 提供的功能有网络接入、OTA、远程控制…

神经网络入门实战:(六)PyTorch 中的实用工具 SummaryWriter 和 TensorBoard 的说明

(一) SummaryWriter 这里先讲解 SummaryWriter &#xff0c;TensorBoard 会在第二大点进行说明。 SummaryWriter 是 PyTorch 中的一个非常实用的工具&#xff0c;它主要用于将深度学习模型训练过程中的各种日志和统计数据记录下来&#xff0c;并可以与 TensorBoard 配合使用&am…

C#实现一个HttpClient集成通义千问-开发前准备

集成一个在线大模型&#xff08;如通义千问&#xff09;&#xff0c;来开发一个chat对话类型的ai应用&#xff0c;我需要先了解OpenAI的API文档&#xff0c;请求和返回的参数都是以相关接口文档的标准进行的 相关文档 OpenAI API文档 https://platform.openai.com/docs/api-…

开发知识点-uniCloud

开发知识点-uniCloud 服务空间云函数 cloudfunctions云对象importObjectJSON 格式的文档型数据库Collection unicloud数据的指定表集合 DB SchemaJQL 语法参考资料 服务空间 项目关联空间 云函数 cloudfunctions 云对象importObject JSON 格式的文档型数据库 nosql 非关系…

Vue Web开发(二)

1. 项目搭建 1.1. 首页架子搭建 使用Element ui中的Container布局容器&#xff0c;选择倒数第二个样式&#xff0c;将代码复制到Home.vue。 1.1.1.下载less &#xff08;1&#xff09;下载less样式 npm i less   &#xff08;2&#xff09;下载less编辑解析器 npm i less…

GWAS分析先做后学

大家好&#xff0c;我是邓飞。 GWAS分析是生物信息和统计学的交叉学科&#xff0c;上可以学习编程&#xff0c;下可以学习统计。对于Linux系统&#xff0c;R语言&#xff0c;作图&#xff0c;统计学&#xff0c;机器学习等方向&#xff0c;都是一个极好的入门项目。生物信息如…

Go学习:变量

目录 1. 变量的命名 2. 变量的声明 3. 变量声明时注意事项 4. 变量的初始化 5. 简单例子 变量主要用来存储数据信息&#xff0c;变量的值可以通过变量名进行访问。 1. 变量的命名 在Go语言中&#xff0c;变量名的命名规则 与其他编程语言一样&#xff0c;都是由字母、数…

Netty 心跳机制示例 —— 服务端实现

Netty 心跳机制示例 —— 服务端实现 1. 背景 在分布式系统和网络通信中&#xff0c;保持客户端与服务器端的连接活跃是非常重要的。如果长时间没有数据传输&#xff0c;连接可能会超时或被中断。为了解决这个问题&#xff0c;我们可以通过 心跳机制 来保证连接持续有效。 N…

【Linux】 进程池 一主多从 管道通信

目录 1.代码介绍 2.channel 类 3.进程池类编写 4.主函数及其他 5. 源码 1.代码介绍 本文代码采用一主多从式&#xff08;一个主进程&#xff08;master&#xff09;多个子进程&#xff08;worker&#xff09;&#xff09;通过管道进行通信&#xff0c;实现主进程分发任务&…

小红薯最新x-s 算法补环境教程12-06更新(下)

在上一篇文章中已经讲了如何去定位x-s生成的位置&#xff0c;本篇文章就直接开始撸代码吧 如果没看过的话可以看&#xff1a;小红薯最新x-s算法分析12-06&#xff08;x-s 56&#xff09;&#xff08;上&#xff09;-CSDN博客 1、获取加密块代码 首先来到参数生成的位置&…

Nacos源码学习-本地环境搭建

本文主要记录如何在本地搭建Nacos调试环境来进一步学习其源码&#xff0c;如果你也刚好刷到这篇文章&#xff0c;希望对你有所帮助。 1、本地环境准备 Maven: 3.5.4 Java: 1.8 开发工具&#xff1a;idea 版本控制工具: git 2、下载源码 官方仓库地址 &#xff1a;https://git…

视频码率到底是什么?详细说明

视频码率&#xff08;Video Bitrate&#xff09;是指在单位时间内&#xff08;通常是每秒&#xff09;传输或处理的视频数据量&#xff0c;用比特&#xff08;bit&#xff09;表示。它通常用来衡量视频文件的压缩程度和质量&#xff0c;码率越高&#xff0c;视频质量越好&#…

计算机网络复习——概念强化作业

物理层负责网络通信的二进制传输 用于将MAC地址解析为IP地址的协议为RARP。 一个交换机接收到一帧,其目的地址在它的MAC地址表中查不到,交换机应该向除了来的端口外的所有其它端口转发。 关于ICMP协议,下面的论述中正确的是ICMP可传送IP通信过程中出现的错误信息。 在B类网络…