NATS是一个开源、轻量级、高性能的分布式消息中间件,实现了高可伸缩性和优雅的Publish/Subscribe模型,但他不保证消息的到达,持久性等特性,nats streaming即为解决这一问题,附一张官方两者架构图。
启动过程:
1.parseFlags启动参数的处理
2.RunServerWithOpts初始化准备:
1)启动参数获取,启动日志系统
2)持久化初始化(内存,文件,数据库),调用startIOLoop启动通道监听(后续会说明用处)
3)启动nats服务器,如果没设置nats服务器,s.startNATSServer()
4)启动nats客户端连接createNatsConnections,
5)启动事件监听s.start,s.initSubscriptions(content,pub,sub,close事件),s.processSubscriptionsStart订阅处理