08、Kafka ------ 消息存储相关的配置-->消息过期时间设置、查看主题下的消息存活时间等配置

目录

消息存储相关的配置

★ 消息的存储介绍

Kafka的消息主题与JMS、AMQP的消息队列是不同:JMS、AMQP消息队列中的消息只能被消费一次,当消息被消费时,这条消息就会被移出队列;

但Kafka主题中的消息完全可以被多次重复消费,甚至可以从指定下标处开始读取消息。

从某种角度来看,Kafka主题中的消息,就像数据表中的记录,它会在一段时间内持久化保存,客户端(消费者)可根据需要反复地读取它们,

这正是一开始就介绍过的:Kafka并不是单纯的消息组件,而是"开源的分布式事件流平台(open-source distributed event streaming platform)"。

★ 消息过期时间及处理方式

Kafka主题中的消息默认保存期限为7天,这个默认保存时间可通过server.propeties文件中的 log.retention.hours 属性进行修改。

当数据过期之后,Kafka可以对数据进行两种处理:delete或compact,其中

 - delete 表示直接删除过期数据,
 - compact 则表示对数据进行压缩整理,更多是偏向整理。

演示:log.cleanup.policy 属性配置

对过期消息的处理设置:设置消息过期后就删除掉

通过server.propeties文件中的 log.cleanup.policy 属性进行配置。

★ 修改指定主题的消息保存时间

在 server.properties 文件中配置的参数,它们都是对整个Broker生效的。

有些时候,可能希望仅修改特定主题的某些配置,此时就需要对特定主题进行修改了。

修改指定主题的额外属性推荐使用 kafka-configs.bat(.sh)命令,该工具命令可指定如下常用选项:

 --alter:修改。
 --describe:显示。该选项与--alter选项只能选择其中之一。
 --delete-config:指定要删除的配置属性,该选项的值应该符合"k1,k2"的形式。
 --add-config:指定要添加的配置属性,
               该选项的值为应该符合"k1=v1,k2=[v1,v2,v2],k3=v3"的形式。
 --bootstrap-server:指定要连接的服务器。
 --entity-type:指定要配置的实体类型,
   该选项可支持topics(主题)、clients(客户端)、users(用户)、
              brokers(代理)和broker-loggers(代理日志)这些值。
 --entity-name:指定要配置的实体的名称,该选项与--entity-type结合使用,
                用于指定主题名,客户端ID、用户名、Broker ID。

修改指定主题的保存时间,用 "retention.ms" 属性。

演示:将 test2 主题下的消息的保存时间设为10个小时

--alter ^ 表示要修改

--entity-name test2 ^ 表示修改的是 test2

--entity-type topics ^ 表示修改的类型是 topics 主题类型

 kafka-configs --bootstrap-server localhost:9092 ^
 --alter ^
 --entity-name test2 ^
 --entity-type topics ^
 --add-config retention.ms=36000000
1、先查看test2主题下的配置

没设置保存时间之前,查看下配置:发现什么都没有

查询的命令在下面【查看指定主题的配置】那里有介绍:就是这个查寻命令

 kafka-configs --bootstrap-server localhost:9092 ^
 --describe ^
 --entity-name test2 ^
 --entity-type topics

cmak 界面也没有时间显示:配置里面默认消息存放是7天,这里没有显示

2、然后设置消息的保存时间

然后设置test2主题下的消息保存时间为10小时:

3、然后再查一遍test2的配置,看是否修改成功

CMAK 界面查看也有了消息的存活时间:

★ 查看指定主题的配置

查看指定主题的配置可用两条命令:

命令1:查看所有对象的信息

1、使用 kafka-configs.bat 命令的 --describe 子命令

------该命令可查看所有对象的信息

--bootstrap-server localhost:9092 ^ 这个就是指定连接哪个kafka服务器地址

 kafka-configs --bootstrap-server localhost:9092 ^
 --describe ^
 --entity-name test2 ^
 --entity-type topics

直接查9092节点的kafka下的test2主题的所有对象详细,所以描述的比较少。

可以看到test2主题的配置中,该主题消息的存活时间是10小时。

命令2:查看特定主题的信息

2、使用 kafka-topics.bat 命令的 --describe子 命令

------该命令只能查看特定主题的信息

kafka-topics --bootstrap-server localhost:9092 ^
 --topic test2 ^
 --describe

因为是专门查看主题的,所以不仅有主题的配置信息,还有该主题的分区信息。

可以在CMAK界面查看这个主题的配置:

不仅可以用命令修改主题配置,在这个CMAK界面也可以直接修改和查看:

相关推荐
初晴~1 小时前
【Redis分布式锁】高并发场景下秒杀业务的实现思路(集群模式)
java·数据库·redis·分布式·后端·spring·
有一个好名字1 小时前
zookeeper分布式锁模拟12306买票
分布式·zookeeper·云原生
漫无目的行走的月亮3 小时前
Ubuntu下C语言操作kafka示例
kafka·librdkafka
yukai080085 小时前
【最后203篇系列】002 - 两个小坑(容器时间错误和kafka模块报错
分布式·kafka
老猿讲编程6 小时前
OMG DDS 规范漫谈:分布式数据交互的演进之路
分布式·dds
C++忠实粉丝6 小时前
服务端高并发分布式结构演进之路
分布式
洛神灬殇7 小时前
彻底认识和理解探索分布式网络编程中的SSL安全通信机制
网络·分布式·ssl
龙哥·三年风水8 小时前
workman服务端开发模式-应用开发-vue-element-admin封装websocket
分布式·websocket·vue
李洋-蛟龙腾飞公司11 小时前
HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据文件资产迁移
分布式·华为·harmonyos
技术路上的苦行僧13 小时前
分布式专题(10)之ShardingSphere分库分表实战指南
分布式·shardingsphere·分库分表