如何生成用于唯一标识消息SequenceID.pdfVIP

  • 1
  • 0
  • 约小于1千字
  • 约 1页
  • 2026-08-03 发布于北京
  • 举报

《130_用来唯一标志一条消息的SequenceID到底应该如何生成?》

不丢,ACK+重试,去重-sequenceId(客户端生成的)

其实对于一个客户端每次跟另外一个客户端之间的都是一个会话,然后在这个session

内发送的消息都是有一个递增的SequenceId

站在的角度,跟的是有一个会话,对于这个会话你是不是可以生成一个sessionId,

唯一标识角度跟的一个会话,在这个会话里自己每次发送出去的消息,都是一

个sequenceId,递增的

通过这个sessionId+sequenceId,其实就可以唯一标志一条消息,在服务端进行去重,同

时在客户端进行去重了

当然也可以由客户端自己保证,不同的session的sequneceId不会重复,全局递增,但是这

个有点难以保证,毕竟客户端可能会清空一些本地的数据,还是跟sessionId绑定

起来去保证

如果不想使用两个id,可以用那种64位的long型id,把高32位作为sessionId,低32位

作为sequenceId,也是可以的,这样就用一个sequenceId包含了高低32位即可,其实大

家到这里就理解我们之前一直传递的sequenceId是用来干什么的了

字符串来处理,sequenc

文档评论(0)

1亿VIP精品文档

相关文档