消息系统部署与安全:架构、策略与实践
1. 消息丢失检测与确认机制
消息供应商应具备某种错误检测机制,以判断 UDP 数据报是否丢失。理想情况下,还能识别出由于网络边界或不支持的网络路由器导致客户端无法访问的情况。JMS 规范允许非持久 JMS 订阅者错过消息,但对此描述较为模糊,因为规范并不旨在为 JMS 提供者强加一种架构。实际上,非保证消息传递意味着消息可能会丢失,但这种丢失应该是偶尔发生的。对于这两种情况,都需要某种确认语义。
2. 集中式和分布式架构
2.1 集中式架构
基于 TCP 的消息系统通常采用星型架构,即一个集中式消息服务器或消息服务器集群通过 TCP/IP、SSL 或 HTTP 连接与 JMS 客户端通信。集中式服务器负责了解在任何给定时间谁在发布消息以及谁在订阅消息。消息服务器可以在跨多台机器的集群中运行,但对客户端来说,似乎只有一个逻辑服务器。集群中的消息服务器可以智能地将消息路由到其他服务器,集群可以提供负载均衡,并通过选择性地过滤和路由仅需到达特定节点的消息来优化网络流量。服务器还负责保证消息的持久性,以及按主题为订阅者授予权限的访问控制列表(ACL)。消息仅会传递给对特定主题感兴趣且具有访问权限的订阅者。集中式服务器也使添加订阅者变得更加容易,当新订阅者上线时,只需消息服务器知晓即可。
然而,集中式架构可能会引入单点故障问题。如果集群中的主服务器(客户端最初连接的服务器)出现故障,整个集群可能会不可用。JMS 提供者可以通过将连接分布到集群中的多个服务器来解决这个问题。如果一台服务器出现故障,其他服务器可以继续运行,从而将故障影响降至最低。客户端还可以内置重连逻辑,以便在初始服务器出现故障时找到其他服
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



