Sun Java System Instant Messaging 7.2 管理指南

Instant Messaging 重定向概述

重定向服务器是一个专门配置的 Instant Messaging 服务器实例,用于执行各类重定向任务(例如将连接终点分配给 Instant Messaging 服务器)。将重定向服务器添加到部署中时,将可能会相互通信的用户分组到同一主机上,从而减少服务器之间的通信量。这样会减少部署中的服务器之间来回发送在线状态通知的数量。用户组由联系人列表的内容确定。联系人列表中的共享条目表示极可能会进行通信。

Instant Messaging 用户分区算法

Instant Messaging 确定部署中各用户之间的最佳划分方法,并创建用户的分组或 分区。Instant Messaging 所用的算法如下:

  1. 确定部署中的一个或多个用户集、用户网络及其连接。然后,重定向服务器会创建一个名为 user-to-network map 的表以将每个用户映射到用户网络。

  2. 对大于最大分区大小且存在弱连接的用户网络进行分区,从而使每个弱连接组件的最大大小不会大于所配置的分区大小。弱连接可由用户网络之间的极少数连接来确定,但是,对用户网络进行分区时,还可能会考虑其他参数(例如地理约束、每个用户网络的连接数量以及其他由管理员设置的约束)。

  3. 将各集分布到指定数量且大小类似的分区中。重定向服务器首先创建 network-to-partition 表作为此进程的一部分,并在最后创建 user-to-partition 表。这些表共同组成了重定向数据库。重定向数据库会将每个用户映射到一个分区 ID。可使用 rdadmin 命令行实用程序创建和管理此数据库。


示例 7–1 Instant Messaging 重定向事件序列

本示例说明实现成功的客户机重定向时要发生一系列事件。

  1. 管理员运行 rdadmin 生成和/或更新重定向数据库。

  2. 用户连接到重定向服务器并尝试进行验证。

  3. 重定向服务器确定用户的身份并在重定向数据库中查找对应的用户 ID。

  4. 如果重定向服务器在重定向数据库中没有找到用户 ID,它会联系下一个重定向服务器(由循环机制确定)来查找包含用户 ID 的重定向数据库。如果在重定向数据库中找到了用户 ID,重定向服务器会获取已分配给此用户的分区 ID。

  5. 重定向服务器根据已分配的分区 ID 确定用户将重定向至其中的节点。

  6. 重定向服务器向包含要重定向至其中的节点的客户机返回错误,并关闭与该客户机的连接。

    重定向服务器使用 see-other-host 流错误来将该信息返回给客户机。有关更多信息,参见RFC 3920

  7. 客户机解释错误,并与返回错误的节点建立连接。

  8. 重定向服务器持续不断地监视节点,并根据需要更新其 partition-to-host 表。


关于 Instant Messaging 重定向数据库

此数据库仅包含本地用户。重定向数据库中不包含网关、组件和远程用户。

Instant Messaging 重定向服务器概述

重定向服务器为一个 Instant Messaging 服务器实例,其唯一功能是重定向客户机连接。重定向服务器不会对最终用户执行任何其他服务。启动时,重定向服务器会载入服务器配置和分区文件,并创建以下数据结构:

重定向服务器使用两种数据结构来重定向客户机连接。有关重定向服务器如何使用此信息的说明,参见示例 7–1

Instant Messaging 重定向服务器和 StartTLS

在客户机与重定向服务器之间,可能会发生建立连接客户机的身份识别所需次数的 StartTLS 协商。客户机不需要验证证书,仅需要用户 ID。