3.2 多机(MP)模式的配置
一个TUXEDO应用系统可以部署在多台服务器上,这些服务器通过网络连接,这种部署方式称为MP方式,在这些服务器中要选择一台服务器做MASTER服务器,在该服务器上有一个DBBL进程,负责整个TUXEDO应用系统的管理工作。在每台服务器上都有一个BBL进程,它与DBBL进程进行通信,管理各自服务器上的配置。每台服务器上还有一个名为BRIDGE的进程和一个名为TLISTEN的进程,他们负责服务器之间的通讯。MP模式的结构如图:
如果配置了MP方式,那么在这些服务器之间可以做负载均衡和容错,客户端可以和其中的任何一台服务器建立连接,如果该服务器上没有该客户端所要调用的服务(SERVICE),TUXEDO可以自动把请求发送到别的有该服务的机器取处理,并把结果返回个客户端,如图,SITE1上的客户端调用了TRANSFER,当在SITE1上没有该SERVICE,在SITE3上有,
那么SITE1通过BRIDGE把请求发送到SITE3上,SITE3把处理结果也通过BRIDGE发送到SITE1上,通过SITE1把结果返回给该客户端。这些对客户端时透明的。
如果SITE1,STIE2,SITE3上都有TRANSFER,并且设置了负载均衡(LDBAL =Y),那么TUXEDO将根据他们的负载情况把请求发送到负载较小的服务器上。
如果SITE1,SITE2,SITE3中的某一台或两台服务器出故障了,那么正常的机器仍然能够继续运行,如果时他们之间的网络连接断了,BRIDGE进程会自动进行重试,并且在这些服务器之间可以配置多个网络连接通路,当其中的一个出现故障时,会自动采用别的连接通路。
所以MP方式提供了一个高可靠性的分布式应用系统。
配置成MP方式的步骤:
1. 这些服务器之间可以通过网络互相访问
2. 在每台服务器上都正确安装了TUXEDO SERVER
3. 应用已发布到这些服务器上
4. 选择一台服务器做MASTER机,
6. 在RESOURCES,MACHINES,NETWORK,NETGROUPS中做相应的配置
RESOURCE:
MODEL要设为MP
OPTIONS中要有LAN
MASTER服务器上的DBBL负责与其他服务器上的服务器BBL进行通讯,
BBLQUERY: 每台服务器上的BBL每隔SCANUNIT*BBLQUERY秒,向MASTER机上的
DBBL发送一次状态信息。默认为300秒
DBBLWAIT: 如果MASTER机没有收到某台服务器发送的状态信息,它将等待
SCANUNIT*DBBLWAIT秒,如果还没有收到该服务器发送的状态信息,这台服务
器将被分离出去(PARTITIONED),默认为20秒
MACHIENS:
在MACHINES中要配置该TUXEDO应用系统包括的每台服务器,如果该服务器时UNIX服务器,那么要配置UID,GID,UID,GID为TUXEDO用户所对应的UID,GID,在UNIX下可以用ID命令查看。
NETWORK:
在该节中配置服务器之间通讯的IP地址及BRIDGE进程,
在一个MP方式的TUXEDO应用系统中,不同的服务器之间通过BRIDGE进程进行通讯,该BRIDGE的侦听IP地址及端口
在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备,如果是在NT下则不要。
在TUXEDO系统启动前,不同服务器之间的通讯是通过tlisten进程来进行的,因为这时还没有BRIDGE进程。
NLSADDR为tlisten进程侦听的IP地址及端口。
一个MP方式的配置例子。
环境:WIN2000服务器一台,安装TUXEDO6.5, 服务器名WIN,IP地址:10.13.1.124
SUN5.8服务器一台,安装TUXEDO6.5, 服务器名SUN,IP地址:12.22.32.35
MASTER机为WIN2000服务器,BACKUP机为SUN。
在WIN2000服务器上的UBBCONFIG的内容如下,在SUN服务器上不用编写UBBCONFIG文件。当启动时DBBL会自动
把WIN2000服务器上的TUXCONFIG文件发送到SUN服务器上。
*RESOURCES
IPCKEY 87656
MASTER site1,site2
MAXACCESSERS 40
MAXSERVERS 40
MAXSERVICES 40
MODEL MP
OPTIONS LAN
*MACHINES
WIN LMID=site1
APPDIR="d:\tuxdemo\mp"
TUXCONFIG="d:\tuxdemo\mp\tuxconfig"
TYPE="win2000"
TUXDIR="d:\tuxedo65"
SUN LMID=site2
UID=1006
GID=30
APPDIR="/export/home/simpapp"
TUXCONFIG="/export/home/simpapp/tuxconfig"
TYPE="sun"
TUXDIR="/export/home/tuxedo"
*GROUPS
GROUP1
LMID=site1 GRPNO=1 OPENINFO=NONE
GROUP2
LMID=site2 GRPNO=2 OPENINFO=NONE
*NETWORK
site1 NADDR="//10.13.1.124:6000"
NLSADDR="//10.13.1.124:6001"
site2 NADDR="//12.22.32.35:6000"
NLSADDR="//12.22.32.35:6001"
BRIDGE="/dev/tcp"
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP2 SRVID=3
*SERVICES
TOUPPER
1. 在WIN2000服务器上把该UBBCONFIG编译成TUXCONFIG
tmloadcf -y ubbmp
2. 在WIN2000服务器上启动tlisten进程
tlisten -l //10.13.1.124:6001
3. 在SUN服务器上启动tlisten进程
tlisten -d /dev/tcp -l /12.22.32.35:6001
4. 在WIN2000服务器上启动该TUXEDO应用系统
tmboot -y
TUXEDO会先启动WIN2000服务器上的进程,然后再启动SUN服务器上的进程。
5. 在WIN2000服务器上执行
simpcl mp test
因为WIN2000服务器上没有TOUPPER服务,TUXEDO会自动调用SUN服务器上的TOUPPER服务,并把结果返回给客户端,这一切对客户端来说是透明的。