Sun Java System Instant Messaging 7.2 管理指南

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 表。