服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

bea tuxedo 开发心得


  两大卖点:资源级事务、可靠消息队列;
  优点:
  1. 系统采用c/c++开发,执行效率高于java,适合于oltp系统;
  2. tuxedo以api方式屏蔽系统细节,简化编程,以较少的api函数调用即可开发一个应用;
  3. 可以多个server并行处理,提高处理能力,扩充性非常好,可以根据当前负载动态启动停止多个server;
  4. 资源级(queue,oracle,informix...)的全局事务保证交易的完整性;
  5. 可靠消息队列(queue)实现数据的可靠传输,而且可以纳入tuxedo事务中,可以和数据库操作同时提交或者回退,保证系统级事务的一致性;
  6. 数据依赖路由,事先确定数据的流向,人工调整系统的负载;
  7. 支持分布式系统, tuxedo/domain结构中各个域相互独立,通过信任关系调用对方的service,可以方便复杂系统的划分,支持跨域事务.
  8. 提供易于管理的工具,方便地管理整个应用.
  
  缺点:
  1. 速度问题: 作为一个适用于oltp系统的交易中间件,若不采用xa方式,需要用户自己控制事务;若采用xa方式,由于要记录全局事务日志(tlog),处理非常慢,尤其是处理实时任务时,server是被动的,发起者调用server,如果结果要记录到数据库,执行的方式为单条提交,速度更是无法忍受(<100条记录/秒).如果没有数据库,或者文件操作,速度非常快.但是一般情况下结果都是要入库的.
  作为tuxedo一大卖点的可靠队列(queue)速度更是无法忍受, <50条/秒
  bea建议在实时处理中打包(几十条)处理,速度确实提高很多,但失去了实时的意义,而且要控制打包和拆包,按记录字段路由等tuxedo优势都丧失了。
  2. 增加了开发、调试、测试的复杂度: 开发server使用c语言(访问数据库嵌入sql,如:pro*c),实现业务逻辑;前台使用可视化开发环境,用来输入数据和显示数据. 开发任务比两层结构多了很多,如果再使用存储过程,调试需要前台界面、后台server、存储过程协调进行,大大增加了调试的复杂度,而且一般的开发队伍中都是做前台界面的专门做界面,开发后台的专门做后台,这样组装调试就更加困难了。
  3. 事倍功半的查询处理: 交易处理开发复杂还划算,因为毕竟tuxedo带给了我们并行、可靠、全局事务等好处,但是使用三层结构做查询处理就太亏了,本来就是简单的给一个条件查出结果显示就ok了,现在要前台输入查询条件,传送给tuxedo server,tuxedo server根据输入的条件查询数据库,再把数据传送给前台。在tuxedo中一般使用fml传送数据,若结果有很多,还要控制翻页等功能,复杂得一塌糊涂。若使用两层结构(如pb/vb+oracle),举手之劳!
  4. 其它问题:
  a. 域server(gwadm)经常down,不报任何错误,bea正在解决;
  b. 多机的跨域事务经常无法提交,不报任何错误;
  c. que在网络不是特别好的情况下,居然会不先进先出(设置了fifo).
  其它小的问题多多....
  在开发人员眼里,任何工具总是好多缺点,但是tuxedo毕竟是中间件业界的老大, 它提供给了我们许多优越的特性. 其它中间件问题比tuxedo还要多.
  而且bea在中间件和应用服务器行业绝对是老大哥, “世界1000强”企业排名中的全部24家电信公司, 世界最大的前40家电信公司中的38家都是bea的客户
  tuxedo作为tpc-c测试的首选中间件平台(80%以上), ibm,hp都有自己的中间件,但是测试无一例外都选择了tuxedo. 足以见得tuxedo的实力.

扫描关注微信公众号