pulsar的消息保留策略(保留策略,积压,ttl时间)

不打扰是莪最后的温柔 提交于 2020-08-06 23:51:43

默认情况:
立即删除每个订阅上已确认的所有消息,并且
持久性地将所有未确认的消息存储在待办事项中。

通过指定生存时间(TTL),可以在指定的时间范围内未确认的消息自动标记为已消耗。

保留策略
持久存储已经消耗并确认的消息,消息不论消费和未消费,都至少保存X小时。

设置已确认消费消息最大保存时间
pulsar-admin namespaces set-retention tenant/namespace
–size -1
–time 168h
获取
pulsar-admin namespaces get-retention tenant/namespace
参考网站

http://pulsar.apache.org/docs/en/cookbooks-retention-expiry/#get-retention-policy

messageTTL时间
默认情况下,Pulsar会永久存储所有未确认的消息。这是对应于未消费消息来说。
若是已消费消息,则会删除。此时回滚会发现已经没了,所以最好设置保留策略。根据实际需求来配置
此时设置的是未确认消息最大保存时间
pulsar-admin namespaces set-message-ttl tenant/namespace
–messageTTL 120 # TTL of 2 minutes
未消费消息保留策略
pulsar-admin namespaces get-message-ttl tenant/namespace

积压配额
顾名思义就是设置积压的大小筏值,积压针对的是pulsar存储主题的未确认消息的集合。Pulsar将所有未确认的消息存储在待办事项中,直到它们被处理和确认为止。
默认配置是1G,
pulsar-admin namespaces set-backlog-quota tenant/namespace
–limit 1G
–policy producer_request_hold

pulsar-admin namespaces get-backlog-quotas tenant/namespace

(积压配额满额后的处理办法)
producer_request_hold broker将保持并不持久产生请求有效负载
producer_exception broker将通过抛出异常与客户端断开连接
consumer_backlog_eviction consumer将开始丢弃积压消息
————————————————
 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!