[原创]TUXEDO应用系统的组织模式_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
3
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4576 | 回复: 2   主题: [原创]TUXEDO应用系统的组织模式        下一篇 
meng.luo
注册用户
等级:上尉
经验:657
发帖:22
精华:0
注册:1970-1-1
状态:离线
发送短消息息给meng.luo 加好友    发送短消息息给meng.luo 发消息
发表于: IP:您无权察看 2014-5-5 12:58:28 | [全部帖] [楼主帖] 楼主

一、单机模式与多机模式的定义

            


           直奔主题,TUXEDO应用程序的3种组织模式:单机模式、多机模式、多域模式!这里,我主要介绍的是单机模式和多机模式!TUXEDO使用Domain来组织应用程序。通常情况下,一个应用程序由一个Domain构成,这种组织模式被称为“单域”模式(Single-Domain Model)。

           单机模式:在“单域”模式下,一个应用程序既可以部署在一台物理主机上,又可以部署在多台使用高速局域网连接在一起的主机上。如果应用程序只部署在一台主机上,这种部署模式成为单机模式(SHM),我前面接触的simpapp就是一个单机模式。

           多机模式:如果应用程序部署在多台主机上,这种部署模式成为多级模式(MP);



二、TUXEDO单机模式(SHM)

          

        前面已经说过了simpapp这个单机模式的配置,总结一下单机配置文件的特点:


         北京联动北方科技有限公司


          SHM应用的特点

               单机模式支持进程级容错。在系统运行的过程中,如果某些simpserv��例异常终止了,TUXEDO系统就会把他们隔离起来,然后把客户请求派发给处于活动状态的实例去处理。如果一个进程只启动了一个实例,那么它就不具备进程级容错功能。比如,本例中的WWSL进程,它只启动了一个实例,监听者JQ主机的7110端口,如果这个进程死了,在它被TUXEDO系统重新启动之前,所有工作站客户端将不再连接到TUXEDO服务器来做交易。

               单机模式不支持主机级容错。如果JQ主机因硬件故障不能再运行,那么整个SIMPAPP将不能再对外提供服务。因此,大多数主机应用程序通常都借助硬件HA方式来提供主机容错功能。



三、TUXEDO多机模式(MP)

         1、在多机模式下,一个TUXEDO应用程序需要部署在多台物理主机上,这些主机通过高速局域网连接在一起,并在TUXEDO系统的协调下,共同完成特定的任务。

          如图说是,3台主机SITE1、SITE2、SITE3通过局域网连接在一起,在TUXEDO系统软件的协调下,构成一个多机集群,共同为工作站客户端或异步终端提供联机交易服务。

           在3台主机中,SITE1是主节点,SITE2和SITE3是成员节点。主节点管理着成员节点和整个TUXEDO应用程序。每个节点既可以连接 到同一个数据库,也可以连接到不同的数据库,它们既可以共享一个磁盘阵列,也可以使用各自的存储空间。



北京联动北方科技有限公司

      2、MP应用的构成

                       

           如图11-3展示了一个3节点MP应用程序的构成。Machine1为MASTER节点,它上面运行着tlisten、BRIDGE、DBBL和BBL4个系统进程,Mchine2和Machine3为成员节点,它们上面运行着tlisten、BRIDGE、BBL3个系统进程。此外,每个节点上都运行着一个本地公告板(BB),Master节点上的DBBL总是努力使所有公告板的数据保持一致。

          北京联动北方科技有限公司

              3个节点之间通过桥进程(BRIDGE)连接在一起,所有节点之间的消息交换都通过BRIDGE进程来完成。在每一个节点的公告板中既可以找到本地服务的调用入口,也可以找到远程服          务的调用入口。当客户机要调用一个本地服务时,它可以直接从公告笨重找到远程服务的调用入口。当客户机要调用一个本地服务时,它可以直接从公告板中找到提供这个服务的服务器          的IPC请求队列;当客户机要调用一个远程服务时,它只能从公告板中找到本地BRIDGE进程的消息队列,然后把消息放到里面,BRIDGE会理智地把请求消息路由到适���的远程服务器的请          求队列,远程服务器处理请求后,仍把响应结果通过BRIDGE传回给发出调用请求的客户机。这一切对客户机是透明的,也就是说客户机无法感知到哪一个服务时本地的,哪一个服务是            远程的。

        



             Master节点维护着整个应用程序配置文件的主拷贝,在执行tmboot启动应用程序时,DBBL会与成员节点上的BBL进行通信,并把配置文件复制到各个成员节点上,BBL再根据配置文           件更新他们维护着的公告板。

             从管理控制台(Administrative Console)上发出的对成员节点的管理指令,也是通过BRIDGE进程转发到远程的,远程节点的BBL进程收到管理指令后,修改公告板,完成管理任务。

        tlisten是运行在Non-Master节点上的后台网络监听进程,它接受来自Master节点的管理类指令,然后,启动本地的BSBRIDGE进程。因此在执行tmboot启动应用程序之前,所有节点上必须先启动tlisten进程。事实上,再启动应用程序的过程中,Master节点上的tlisten并没有发挥任何作用,因此没有必要启动它。

        

        MP模式下使用到的TUXEDO系统进程

         北京联动北方科技有限公司

 

      3 、MP应用的启动流程

      

      如图11-4所示展示了一个 两个节点MP应用程序的启动过程,Machine1为Master节点,Machine2为Non-Master节点。

         第①步,管理员在Master节点上执行tmboot来启动引用程序;

         第②步,tmboot在Master节点上启动DBBL进程;

         第③步,tmboot在Master节点上启动BBL进程,并初始化公告板;

         第④步,tmboot在Master节点上启动BRIDGE进程。完成4个步骤之后, Machine1上全部管理进程启动完毕,之后tmboot要依次启动Machine2上的管理进程。

         第⑤步,tmboot连接到第一个Non-Master节点上的tlisten监听进程,给它发送一个指令,让它启动BSBRIDGE进程;

         第⑥步,BSBRIDGE进程与Master节点上的BRIDGE进程通信,把配置文件的主拷贝从Master节点复制到Non-Master节点;

         第⑦步,tmboot给tlisten进程发��一个指令,让它启动BBL进程;

         第⑧步,tmboot给tlisten进程发送 一个指令,让它启动BRIDGE进程,当BRIDGE进程启动起来之后,BSBRIDGE进程就会被杀死!

        从第⑤步到第⑧步,tmboot完成了第一个Non-Master节点上的管理进程的启动,如果还有其他Non-Master节点,紧接着tmboot就会依次启动他们上面的管理进程。        如果没有其他多余Non-Master节点需要启动,tmboot又会从Master节点开始,依次启动各个节点上的系统进程(如WSL)和用户进程(如simpserv)。



      北京联动北方科技有限公司



 完成者10个步骤后,一个两节点MP应用程序就启动起来了。完成最后一步后,tmboot命令执行完成,重新返回到命令状态。

  

             



3、BSBRIDGE进程的理解

       

           BSBRIDGE,即Bootstrap BRIDGE,是一个轻量级的BRIDGE进程,在Non-Master节点上的BRIDGE进程还未启动之前,临时用于和Master节点上的BRIDGE通信,从Master节点上得到TUXCONFIG文件,之后tlistern才能启动BBL和BRIDGE。当Non-Master节点上的BRIDGE进程启动之后,BSBRIDGE自动被终止。

           Machine2上的BRIDGE进程只有在BBL启动之后才能启动,而在启动Machine2上的BBL进程之前,又必须完成配置文件的复制,由于存在这样的矛盾,所以才开发了一个轻量级的桥进程BSBRIDGE来复制配置文件。

          

4、MP应用的配置



      这里,主要说一下MP配置文件编写时的注意事项:

      ● 在*RESOURCES段:

                MODEL必须为MP,表示当前是一个MP应用;

                

                OPTIONS必须配置为LAN,表示当前应用跨越网络,部署在多台服务器上,同时也可以加上MIGRATE选项,表示可迁移;

                

                MASTER参数中可以加入一个备用Master节点;

                

                LBAL参数设置为Y,表示激活负载均衡算法;

                

                BBLQIERY用于设置DBBL定期检查BBL状态的时间间隔,默认值为30,即每隔300秒检查一次。如果BBL没有回应,则DBBL就会认为它所管理的TUXEDO系统不再                 是MP的一部分,并且将它隔离出去。



                DBBLWAIT是DBBL在给某个BBL发送消息之后,等待它作出回应的最长时间,默认值为2,即最多等待20秒,即在20秒内,BBL没有回应,DBBL就认为他们已经死了

                                           


      ●在*MACHINES段中,必须加入参与计算机的每一个节点的配置信息,同时可以使用NETLOAD为每个节点指定网络负载因子,这个参数表示把一个请求从本地转发到远程         去处理付出的代价,取值越大表示有更多的请求会在本地处理。

      ●可以通过定义网络组来设置网络连接的优先级。比如,SITE2想优先于SITE1通信,而不是SITE3,就可以定义一个网络组,使它的优先级比DEFAULTNET的高,然后指         定SITE2和SITE1同时属于这个组。网络组的另一个作用是为BRIDGE进程指定多网络通道,以增加容错能力和网络宽带。网络组在*NETGROUPS中定义。

*NETGROUPS
DEFAULTNET  NETGRPNO=0       NETPRIO=100
smurf_JQ    NETGRPNO=1       NETPRIO=300
*NETWORK
SITE1 NETGROUP=DEFAULTNET      NADDR="//JQ:5898"     NLSADDR="//JQ:3050"
SITE2 NETGROUP=DEFAULTNET      NADDR="//JQ:5898"     NLSADDR="//JQ:3050"
SITE3 NETGROUP=DEFAULTNET      NADDR="//JQ:5898"     NLSADDR="//JQ:3050"
SITE1 NETGROUP=smurf_JQ        NADDR="//JQ:5898"
SITE2 NETGROUP=smurf_JQ        NADDR="//smurf:5898"


      ●在*GROUPS段中,定义了3个组BANKB1、BANKB2和BANKB3,分别对应于3个节点。在*SERVERS段中,一共3组TLR、XFER进程,分别属于BANKB1、BANKB2和             BANKB3  3个组,表示他们将分别部署在JQ、smurf、和alice 3台主机上。

      




赞(0)    操作        顶端 
koei
版主
等级:大校
经验:4186
发帖:7
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei 加好友    发送短消息息给koei 发消息
发表于: IP:您无权察看 2014-5-7 8:07:56 | [全部帖] [楼主帖] 2  楼

对了,楼主,真实应用场景中,还有个多域模式,只是在UBB配置中不显,需要个DM的配置加进来。

单机->多机->多域



赞(0)    操作        顶端 
meng.luo
注册用户
等级:上尉
经验:657
发帖:22
精华:0
注册:1970-1-1
状态:离线
发送短消息息给meng.luo 加好友    发送短消息息给meng.luo 发消息
发表于: IP:您无权察看 2014-5-7 8:41:18 | [全部帖] [楼主帖] 3  楼

恩,你给我的最后一个任务是多域之间的互相操作,我今天就看那个!



赞(0)    操作        顶端 
总帖数
3
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论