当一个分区,长期没有数据发送进来时,就慢慢变成了“死分区”。死分区,通常不会造成使用问题,但却给监控报警等问题带来干扰。常见的问题就是查看堆积状态显示堆积,且堆积一直存在。这是因为死分区长期没有数据进来,消费端也不会再提交位点,超过保留时间后,位点会过期。当一个分区没有位点在服务端时,默认取“最大位点”-“最小位点”作为堆积值。此时,如果分区已死,但里面的消息并没有被完全删除时,就会出现“假堆积”的情况。 一般来说,如果数据量足够多时,保留时间一到,消息就都被删除了。但如果数据量少时,消息可能要很久才会真正被删除,因为服务端存储是 1G 为 Segment,至少保留一个 Segment 导致的。 解决办法就是,消息尽量发送均匀,且保证每个分区有数据。如果业务数据比较少,可以考虑定时发一些心跳数据到各个分区里面去。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。