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

news2024/12/23 17:33:49

目录

      • 一、 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 

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

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

相关文章

在做题中学习(78):数组中第K个最大元素

解法:快速选择算法 说明:堆排序也是经典解决topK问题的算法,但时间复杂度为:O(NlogN) 而将要介绍的快速选择算法的时间复杂度为: O(N) 先看我的前两篇文章,分别学习:数组分三块,随机选择基准…

学习记录,正则表达式, 隐式转换

正则表达式 \\:表示正则表达式 W: 表示一个非字(不是一个字,例如:空格,逗号,句号) W: 多个非字 基本组成部分 1.字符字面量: 普通字符:在正则表达式中,大…

加载内核映像文件

将kernel转换成elf文件格式,不能直接从loader直接跳转到0x100000,需要解析,提取出代码和数据出来,放到0x10000(64kb)的位置,1M的位置只是存放elf文件的位置。 4.10加载内核映像文件2 common/el…

11.27-12.5谷粒商城

目录 新增商品 1.上线会员服务 2. 获取分类关联的品牌 3.获取选定分类下的属性分组和属性 4.新增商品vo 5.保存商品信息 6.Spu检索 7.Sku商品检索 新增商品 1.上线会员服务 将会员服务注册到nacos注册中心,启用服务注册发现EnableDiscoveryClient。 同时新增…

【硬件接口】UART接口

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时,也能帮助其他需要参考的朋友。如有谬误,欢迎大家进行指正。 一、UART接口概要 UART接口,即通用异步接收器/发送器,是一种常用的串行通信协议,广泛应用…

python | print() 函数常被忽略的几点用法

在 python 编程中,print() 是最为基础和常用的函数。 也正因如此,print() 函数的一些基础用法常常被我们初学者所忽略,典型的有:换行问题、间隔符使用及格式化输出等。 一、print() 换行问题 1、默认情况下,每一个 …

VTK编程指南<五>:VTK中的坐标系统、空间变换及VTK矩阵详解

1、坐标系统 计算机图形学里常用的坐标系统主要有 4 种,分别是 Model 坐标系统、World 坐标系统、View坐标系统和 Display坐标系统(这些名词在不同的书里的中文表述均有所差别,所以直接使用英文名词表示),此外还有两种表示坐标点的方式&#…

MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作

目录 第一章 以问题导入的方式,深入掌握原理基础 第二章 常用数据检索与R语言自动化下载及可视化方法 第三章 R语言数据清洗与特征变量筛选 第四章 基于ArcGIS、R数据处理与进阶 第五章 基于Maxent的物种分布建模与预测 第六章 基于R语言的模型参数优化 第七…

【JavaEE 进阶(一)】SpringBoot(上)

博主主页: 33的博客 文章专栏分类:JavaEE ??我的代码仓库: 33的代码仓库?? ???关注我带你了解更多进阶知识 目录 1.前言2.Spring3.第一个SpringBoot程序4.Spring MVC 4.1建立连接 4.1.1RequestMapping使用 4.2请求 4.2.1传递单个参数4.2.2传递多个参数4.2.3传递一个对象…

银行项目网上支付接口调用测试实例

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 公司最近有一个网站商城项目要开始开发了,这几天老板和几个同事一起开着需求会议,讨论了接下来的业务规划和需求策略,等技术需求…

手机LCD分区刷新技术介绍

分区刷新也称为分区变频,LCD分区刷新功能的目的是将屏幕分为上下半区,分区显示不同帧率,上方区块High Frame Rate,下方区块Low Frame Rate。使用者可以动态自定义上方高刷显示区的结尾位置。 当前的智能手机屏幕上,显示…

TesseractOCR-GUI:基于WPF/C#构建TesseractOCR简单易用的用户界面

前言 前篇文章使用Tesseract进行图片文字识别介绍了如何安装TesseractOCR与TesseractOCR的命令行使用。但在日常使用过程中,命令行使用还是不太方便的,因此今天介绍一下如何使用WPF/C#构建TesseractOCR简单易用的用户界面。 普通用户使用 参照上一篇教…

flask创建templates目录存放html文件

首先,创建flask项目,在pycharm中File --> New Project,选择Flask项目。 然后,在某一目录下,新建名为templates的文件夹,这时会是一个普通的文件夹。 然后右击templates文件夹,选择Unmark as …

python编程Day12-属性和方法的分类

私有和公有 在python中 定义类的时候,可以给 属性和方法设置 访问权限,即规定在什么地方可以使用。 权限一般分为两种:公有权限、私有权限 公有权限 定义:直接定义的属性和方法就是公有的特点: 可以在任何地方访问和使…

Moving Tables

任务内容 Description The famous ACM (Advanced Computer Maker) Company has rented a floor of a building whose shape is in the following figure. The floor has 200 rooms each on the north side and south side along the corridor. Recently the Company made a pla…

小程序 - 美食列表

小程序交互练习 - 美食列表小程序开发笔记 目录 美食列表 功能描述 准备工作 创建项目 配置页面 配置导航栏 启动本地服务器 页面初始数据 设置获取美食数据 设置onload函数 设置项目配置 页面渲染 页面样式 处理电话格式 创建处理电话格式脚本 页面引入脚本 …

Facebook广告文案流量秘诀

Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密! 一、广告文案怎么写? 正文:这是帖子的正文,出现在您姓名的正下方。它可…

TEXT2SQL工具vanna本地化安装和应用

TEXT2SQL工具vanna本地化安装和应用 Vanna和Text2SQL环境安装和数据准备 conda虚拟环境安装数据准备ollama环境准备 ollama安装和运行ollama下载模型测试下API方式正常使用 chromaDB的默认的embedding模型准备 vanna脚本跑起来 Vanna和Text2SQL TEXT2SQL即文本转SQL&#xf…

标书里的“废标雷区”:你踩过几个?

在投标领域,标书的质量不仅决定了中标的可能性,更是体现企业专业度的关键。但即便是经验丰富的投标人,也难免会在标书编制过程中踩中“废标雷区”。这些雷区可能隐藏在技术方案的细节中,也可能是投标文件格式的规范问题。以下&…

操作系统——I/O系统

笔记内容及图片整理自XJTUSE “操作系统” 课程ppt,仅供学习交流使用,谢谢。 概述 计算机的两个主要工作是I/O和处理。I/O系统的目标是提高设备利用率,尽量提高CPU与I/O设备间的并行工作程度,I/O主要技术包括中断技术、DMA技术、…