数据订阅SDK消费完每条message,必须调用ackAsConsumed 向服务端回复ACK。服务端接收到ACK后,会更新内存中的消费位点,然后每间隔10秒持久化一次消费位点。所以,如果在最新ACK未持久化时重启SDK,为保证消息不丢,服务端会从上一个持久化的消费位点开始推送消息,所以此时SDK会收取到重复消息。
文档内容是否对您有帮助?
数据订阅SDK消费完每条message,必须调用ackAsConsumed 向服务端回复ACK。服务端接收到ACK后,会更新内存中的消费位点,然后每间隔10秒持久化一次消费位点。所以,如果在最新ACK未持久化时重启SDK,为保证消息不丢,服务端会从上一个持久化的消费位点开始推送消息,所以此时SDK会收取到重复消息。