字符串协议
Nats 使用的是字符串协议,有协议头、协议体、协议结尾符, 3 部分字符串组成
协议与协议解析相关,均在 parser.go 文件里
协议定义在 parser.go:54 - parser.go:132
协议解析在 client.parse(parser.go:134)
client.parse
Nats 为了高效解析字符串协议,因此用了字典树解析的方式,依次遍历字符,进到具体协议的分支里
要了解发布订阅的逻辑,基本只要关注以下协议:
协议 | 说明 | 代码位置 |
---|---|---|
INFO | Nats 节点信息同步 | parser.go:1048 - parser.go:1063 |
SUB | 订阅 topic | parser.go:624 - parser.go:659 |
PUB | 往 topic 发布消息 | parser.go:476 - parser.go:497 |
RS+ | topic 订阅信息同步其他节点 | 同 SUB 。最终走进 SUB 处理逻辑 |