Nats 消息总线相关介绍
发布时间
阅读量:
阅读量
Nats 集群
Nats 内部节点有不少类型
与消息总线相关的(包括使用方),有以下类型:
| 节点类型 | 说明 |
|---|---|
| 发布者 | 发送消息的客户端 |
| 订阅者 | 接收消息的客户端 |
| 普通节点 | 保持发布者/订阅者的连接,传递消息 |
| 路由节点 | 本身是普通节点,在此基础上,保存所有 topic 的订阅信息 |
路由节点细节补充
- 存储所有主题的订阅数据
- 非本地消息由经路由传递至目标节点
- 通过 -routes 参数启动多个初始 routable 节点
- 普通组网设备自动转换为 routable 节点
Nats 拓扑
- 普通节点与路由节点之间相互连接
- 当普通节点发送INFO协议时, 该信息会被路由节点传播; 最终所有参与的设备都将接入该网络并成为其管理的路由节点
- 发布者与订阅者仅随机与Nats集群中的单个设备建立连接
Nats Topic
Topic 在 Nats 内部起路由转发规则作用
两种类型 Topic :
| 类型 | 说明 |
|---|---|
| 普通发布订阅 | 所有订阅者,都收到消息 |
| 队列模式 | 随机 1 个订阅者,收到消息 |
Topic 订阅信息,由路由节点维护
即,所有 Nats 节点,均知晓所有 Topic 的订阅信息
Nats 消息转发
- 在本地外的端点上运行的消息消费体中, 消息传输由中间路由节点负责。
- Nats集群内部不进行去重处理(这意味著, 在集群中的每个非本地端点消费体上接收的消息数量与所有参与该消息传播的路由中间件的数量相匹配)
使用 Nats 注意事项
- Topic规模达到极高水平的原因在于每个Nats节点负责存储与该Topic相关的订阅信息。
- 对于同一个Topic来说,其消费者数量不宜过大,否则会导致资源分配不合理。
- 由于Nats内部路由节点会按照总消息源数目减去本地消费者数目的比例来分配消息量,这不仅影响网络带宽使用情况,还会影响Nats的性能表现。
全部评论 (0)
还没有任何评论哟~
