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

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



