Tuxedo学习摘记

本文详细介绍了Tuxedo的通信机制、分布式协调能力、负载均衡、数据依赖路由、容错和安全服务。Tuxedo支持多种通信模式,如请求/应答、会话、事件代理和消息队列,提供强大的分布式事务处理,包括两阶段提交。此外,它具备完善的负载均衡策略,包括主机级和系统级,以及数据依赖路由。Tuxedo还提供了认证、授权、审计和加密等安全服务,并能与WebLogic Server实现安全集成。
摘要由CSDN通过智能技术生成

 

Tuxedo Summary

1. 大的C/S通信功能

       不仅支持请求/应答,还支持保持交易状态的会话模式、基于发布/订阅的事件代理模式、基于消息通知的单播/多播模式、基于消息队列的可靠消息存储和转发方式

2. 强大的联机交易功能

       通信传输的只是较少的客户请求服务名和服务结果,不再是大量繁琐的SQL请求应答,有异步RPC机制实现扇出并行、利用MSSQ实现多处理并行、利用转发机制实现流水线并行

3. 强大的分布式协调能力

       作为一个TP MonitorTuxedo使用全局事务跟踪参与者,使用两阶段提交来协调完成事务

4. 完善的负载均衡机制

       Tuxedo支持主机级和系统级的负载均衡,使得更多的请求被发送到计算能力较强的计算机上,默认会自动的负载均衡,也可以通过配置负载因子来干预调度。

5. 数据依赖路由

       数据依赖路由根据请求缓冲区中指定字段的取值范围,来把请求映射到某服务器组上的负载均衡算法

6. 请求优先权

7. 容错和透明故障迁移

 

ATMI的消息通信方式

Tuxedo使用IPC消息队列来实现请求/应答式通信,消息队列是面向无连接通信的关键技术,Tuxedo系统会给每一个服务进程分配一个IPC消息队列,称为请求队列,给每个客户机分配一个响应队列,这样客户机和服务器之间就不需要建立通信连接,客户机把请求消息放入服务器的请求队列中,然后从自己的响应队列中检查响应结果。

 

ATMI编程环境中,客户机和服务器之间使用消息缓冲区来进行数据交换,由于ATMI消息缓冲区具有格式化和自描述的特点,因此又称之为类型缓冲区(Typed Buffers),类型缓冲区克服了平台差异,为不同系统下的数据表示提供了一个统一的展现

 

Tuxedo客户机使用tpalloc()分配一个请求缓冲区,然后往里面放入请求消息,在执行tpcall()去调用一个服务,客户机Tuxedo系统会根据tpcall()指定的服务名称进行命名映射(name mapping),找出实现这个服务的后台进程IPC消息队列入口,然后进行类型判别(type validation),以检查请求消息和缓冲区是否符合服务参数的要求,如果符合,就从Tuxedo服务器的运行时系统中取出服务的优先级,并把它绑定到请求消息上(service prioritization)

 

在数据依赖路由处理中,客户机Tuxedo系统根据路由标准决定把请求消息发送到哪一个后台进程IPC消息队列,客户机系统接下来还可以对请求消息进行编码、压缩、事务上下文设置、安全设置等。这种无连接的通信不仅减少了建立连接的额外开销,还提高了网络的使用效率

 

Tuxedo大量使用了操作系统的IPC资源,UNIX System V提供了3IPC资源:消息队列(MSG)、共享内存(SHM)和信号量(SEM),只有极少数操作系统如AIXIPC资源是自适应的,不需要手工进行调整。

 

编译Server端和Client

buildserver [-s {@ filename|service [,service…] [:func]|:func}] [-v] [-o outfile] [-f firstfiles] [-l lastfiles] [{-r|-g} rmname] [-k] [-t]

buildclient [-v] [{-r rmname | -w}] [-o name] [-f firstfiles] [-l lastfiles]

 

工作站客户端(WorkStation)

工作站客户端通过WSNADDR环境变量连接到WSL,再有WLS分配WSH作为请求代理来调度服务,决定客户机是哪一种类型是在链接时不是在设计时决定的,链接了TUXEDO本地库(libtux.lib)生成的就是本地客户端,链接了W/S(libwsc.lib以及wtuxws32.lib)生成的客户端就是工作站客户端,编译时加上-w选项就可以指示编译器链接/WS库。

 

WSLTuxedo系统提供的工作站监听服务器,在应用程序启动时,它开始监听服务器上的某个端口,并根据配置指令自动启动若干个WSH,形成(WSH Pool),当客户机执行链接服务器时,WSLWSH Pool中取出一个负载最小的WSH,并把客户机请求放到它的请求队列中,WSH代表客户机负责把请求放到服务器的请求队列中,服务器处理完成请求之后,把响应结果传给WSHWSH再把它返回给客户机。Tuxedo会根据配置指令和并发压力的大小,动态调整WSH PoolWSH进程数量

 

类型缓冲区是一块格式化了的内存区域,它是Tuxedo分布式应用程序之间交互数据的一种渠道。

Buffer Type

描述

长度

编码

DDR

效率

CARRAY

字符数组,NULL字符有效

定长

不支持

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值