消息协议设计
设计目标
可达有序,不重不漏【Qos2 + 时序性】
Qos是什么
Qos(Quality of Service)等级是发送与接收端的一种关于保证交付信息的协议,一共有3个等级(0~2)
最多一次(0)
最小的等级就是0,并且它保证一次信息尽力交付,一个消息不会被接收端应答,也不会被发送端存储再发送。这个也叫做“即发即启”。在tcp协议下就是这样。
最少一次 (1)
当Qos等级是1时,它保证消息会至少一次给接受者。但是消息可能被发送两次甚至更多。
只一次 (2)
它确保每个消息都只被接收到一次,也是最安全且最慢的服务等级。
评估标准
- 【性能】协议传输效率,尽可能的降低端到端的延迟
- 【兼容】既要向前兼容,也要向后兼容
- 【存储】减少消息包的大小,降低空间占用率
- 【计算】减少编码解码时造成的CPU使用率的权衡
- 【网络】尽可能的减少网络带宽
- 【安全】协议安全性,防止协议被破解
- 【迭代】尽可能的灵活扩展,支持IM复杂业务的严谨
- 【通用】可跨平台接入,H5,客户端,IOT设备
- 【可读】易于理解,方便调试