Sun Java System Instant Messaging 7.2 管理指南

第 6 章 使用服务器池比例缩放 Instant Messaging 部署

服务器池可支持单个域中上百万的用户。通过服务器池,可在同一服务器池中的若干台服务器之间共享一个域。此外,可使用负载平衡器(如重定向服务器)来协助管理池中的服务器利用情况。本章的以下各节介绍了有关服务器池的信息:

有关负载平衡和重定向服务器的信息,参见第 7 章,使用重定向服务器优化 Instant Messaging 服务器池。本章中的各程序均假定您已在服务器池中的主机上安装了 Instant Messaging。此外,需在服务器池的每个节点上安装 Access Manager SDK,并配置 SDK 以与单个远程 Access Manager 服务器进行通信。

Instant Messaging 服务器池的概述

通过创建服务器池,可在 Instant Messaging 部署中支持的用户数将不再受单个服务器系统容量的约束。相反,可使用多个系统的资源来支持单个域中的用户。此外,服务器池提供了冗余性,因此如果池中的一台服务器发生故障,受影响的客户机可在最小的不便程度情况下重新连接并通过池中的另一台服务器继续其会话。在服务器池中部署多台服务器会创建一个多节点部署

配置 Instant Messaging 服务器以通过服务器到服务器端口通信,并从同一 LDAP 目录获取用户数据,从而创建服务器池。配置服务器后,需配置客户机资源以指向负载平衡器或负载均衡器,而非单个节点的主机和端口。


注意 – 注意 –

虽然可使用共享文件系统代替 LDAP 目录存储用户属性,但这样会对性能和可管理性产生负面影响。因此,服务器池仅支持 LDAP 存储。


为确保服务器池中的所有服务器都有一致的数据,以下信息在池中的所有服务器间均相同:

以下信息则不相同:

此外,如果要通过部署中的访问控制文件执行策略,服务器池中的所有服务器的访问控制文件的内容都必须相同。有关更多信息,参见使用访问控制文件的管理策略

Instant Messaging 服务器池的可用性

如果服务器池中的一个节点发生故障,当前连接的所有客户机都会断开连接,并且会话和资源将变为不可用。如果使用负载平衡器设置部署,用户可立即重新连接并由负载平衡器引导至池中的另一节点。执行此类操作时,无需重新创建会议或新闻频道,因为池中的所有服务器间共享此类信息。此外,将用户引导至池中的另一节点后,可继续一对一聊天会话。

配置服务器池中的 Instant Messaging 服务器之间的服务器到服务器通信

本小节介绍如何启用服务器池中的两台 Instant Messaging 服务器或对等点之间的通信的方法。必须使用池中所有其他服务器的信息来配置池中的每个服务器。

表 6–1 列出 iim.conf 中的参数以及用于为服务器池中的两个示例 Instant Messaging 服务器(iimA.siroe.com iimB.siroe.com)建立通信的值。

有关配置参数的更多信息,参见附录 A,iim.conf 中的 Instant Messaging 配置参数

表 6–1 服务器池中的两台 Instant Messaging 服务器的示例配置信息

iim.conf 中的参数

服务器 A 的值 

服务器 B 的值 

注释 

iim_server.serverid

iimA.siroe.com

iimB.siroe.com

在服务器池中,此 ID 用于支持回拨机制且不用于验证。此值在服务器池中应唯一。 

iim_server.password

secretforiimA

secret4iimB

 

iim_server.coservers

coserver1

coserver1

每台 Instant Messaging 服务器均通过其符号名进行标识。服务器的符号名会被添加到 iim.conf 文件内的 iim_server.coservers 参数中。此参数可包含多个以逗号分隔的值。

iim_server.domainname

siroe.com

siroe.com

服务器池中共享同一默认域的对等服务器。 

iim_server.coserver1.host

iimB.siroe.com:5269

iimA.siroe.com:5269

服务器池中对等服务器的主机名和端口号。 

iim_server.coserver1.serverid

iimB.siroe.com

iimA.siroe.com

服务器池中对等服务器的服务器 ID (iim_server.serverid)。

iim_server.coserver1.password

secret4iimB

secretforiimA

服务器池中对等服务器的密码 (iim_server.password)。

iim_server.coserver1.domain

siroe.com

siroe.com

服务器池中共享同一默认域的对等服务器。 

Procedure设置服务器池中两台 Instant Messaging 服务器之间的通信

  1. 收集表 6–1 中列出的信息。

  2. 转到服务器 iimA.siroe.com 上的 im-cfg-base

    有关查找 im-cfg-base 的说明,参见Instant Messaging 服务器目录结构

  3. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见附录 A,iim.conf 中的 Instant Messaging 配置参数


    注 –

    iim.conf 文件应归用户在安装过程中创建的 Instant Messaging 服务器帐户所有。如果 Instant Messaging 服务器帐户不能读取 iim.conf 文件,则服务器和多路复用器将无法读取配置。另外,您可能无法编辑 iim.conf 文件。


  4. 修改参数值以匹配您的部署。

    表 8–1 列出了需修改的参数。如果 iim.conf 中没有这些参数,则进行添加。以下示例显示了对应于需修改的服务器到服务器通信的 iimA.siroe.com 上的 iim.conf 部分。


    iim_server.serverid=iimA.siroe.com
    iim_server.password=secretforiimA
    iim_server.domainname=siroe.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iimB.siroe.com:5269
    iim_server.coserver1.serverid=iimB.siroe.com
    iim_server.coserver1.password=secret4iimB
    iim_server.coserver1.domain=siroe.com
                   
  5. 对服务器 iimB.siroe.com 上的 iim.conf 文件执行第 2 步到第 4 步。

    以下示例显示了对应于需修改的服务器到服务器通信的 iimB.siroe.com 上的 iim.conf 部分。


    iim_server.serverid=iimB.siroe.com
    iim_server.password=secret4iimB
    iim_server.domainname=siroe.com
    iim_server.coservers=coserver1
    iim_server.coserver1.host=iimA.siroe.com:5269
    iim_server.coserver1.serverid=iimA.siroe.com
    iim_server.coserver1.password=secretforiimA
    iim_server.coserver1.domain=siroe.com
  6. 保存更改并关闭 iim.conf

  7. 刷新两台服务器上的配置。


    imadmin refresh server
    

向现有的 Instant Messaging 部署添加新节点

如果需向现有的服务器池添加其他节点,则需为服务器到服务器通信配置新的服务器,然后向池中的所有现有服务器添加新服务器的配置信息。此外,需向新节点添加池中所有服务器的配置信息。有关说明,参见设置服务器池中两台 Instant Messaging 服务器之间的通信

保证多节点部署的安全性

节点连接到远程服务器时,节点会提供一个回拨密钥。远程服务器随后连接回节点以验证回拨密钥。在多节点部署中,远程服务器可能会连接回池中的某个与最初发送回拨密钥的节点所不同的节点。远程服务器所连接的节点必须提供最初连接的节点所提供的同一回拨密钥。iim_server.dialback.key 配置参数定义了节点应使用哪一个回拨密钥。除非明确指定,否则回拨密钥的值均是随机生成的。有关说明,参见为服务器池中的 Instant Messaging 服务器手动定义回拨密钥

远程服务器使用 From 属性来连接回初始服务器。通常,将服务器的域名用作 Jabber 下的服务器到服务器通信中的 From 属性的值。但是,服务器池中的所有服务器均共享同一域名。因此,无法将域名用作查找池中的某台服务器的关键字。实际上,Instant Messaging 使用服务器或对等方的标识符 (serverid) 替代域名作为 From 属性的值。

Procedure为服务器池中的 Instant Messaging 服务器手动定义回拨密钥

除非明确指定,否则回拨密钥的值均是随机生成的。

  1. 打开 iim.conf

    有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法

  2. 修改 iim_server.dialback.key 参数的值。

    例如:


    iim_server.dialback.key=mymultinodedialbackkey
    
  3. 保存更改并关闭 iim.conf

  4. 刷新两台服务器上的配置。


    imadmin refresh server