tuxedo客户端调用java_tuxedo调用客户端_tuxedo调用java socket_调用tuxedo
图1 Tuxedo网关连接Web服务器和Tuxedo
Tuxedo网关采用“请求/应答”模式,不仅将Web服务器的请求发送到Tuxedo平台,同时,接收Tuxedo平台的处理结果,将处理结果回送到Web服务器,至此,完成一次交易。
3 总体设计
3.1 系统结构
从系统并发能力和Tuxedo对客户端的并发限制考虑,Tuxedo网关采用多进程并发服务器模型,由多个进程协同处理来自Web服务器的Tuxedo访问请求。同时,采用并发方式,可以实现对Tuxedo用户License的共享复用。
从吞吐量考虑,Tuxedo网关与Web服务器的通信采用长连接、异步读写方式,与Tuxedo的通信采用异步调用方式,每个进程可以同时处理多个Tuxedo访问请求。
系统中包含INIT、MANAGER和PROXY三类进程,INIT进程和MANAGER进程在整个系统中各有一个,PROXY进程的数量可以根据需要配置,各自功能如下:
MANAGER进程:负责与Web服务器的通信,接受来自Web服务器的连接和访问请求并回送结果;将请求分发给PROXY进程处理并接收PROXY进程的结果;负责流量控制和系统本身的负载均衡;守护PROXY进程。
PROXY进程:负责与Tuxedo服务通信;应用协议与ATMI协议的转换;调用Tuxedo服务并接收调用结果。每个PROXY进程连接一个Tuxedo系统,可以通过本地客户端或WorkStation方式与Tuxedo通信。
INIT进程:MANAGER进程的守护进程。MANAGER进程与Web服务器之间采用基于TCP/IP的Socket长连接,与PROXY进程之间采用FIFO通信。
图2 Tuxedo网关系统结构
3.2 工作流程
WEB服务器访问Tuxedo服务的一个完整的交易过程如下所示:
1. 启动Tuxedo网关,端口;
2. WEB服务器主动连接Tuxedo网关的端口,Tuxedo网关接受连接;
3. WEB服务器将应用数据按照协议封装成报文,通过TCP/IP协议发送到Tuxedo网关;
4. Tuxedo网关接收到该报文,MANAGER进程根据一定规则将其分配给指定的PROXY进程处理;
5. PROXY进程接收到MANAGER进程发送的请求,将报文转换为TuxedoATMI类型的数据,通过ATMI接口调用Tuxedo服务;
6. PROXY进程接收到Tuxedo服务返回的结果,将其转换为特定格式发给MANAGER进程;
7. MANAGER进程接收到PROXY进程的结果,将其按照协议封装成报文发送给WEB服务器;
8. WEB服务器接收到Tuxedo网关发来的响应,解析报文,取出应用数据,至此完成一次访问。
整个过程中,WEB服务器和Tuxedo服务之间传递的应用数据对Tuxedo网关透明,Tuxedo网关只负责协议转换,应用数据的具体格式和内容由WEB服务器与Tuxedo服务协商确定。
3.3 部署方式
根据访问Tuxedo服务方式的不同,Tuxedo网关可以采取两种部署方式。
一种方式是将Tuxedo网关与Tuxedo服务部署在同一用户环境下,Tuxedo网关做为本地客户端与Tuxedo通信。调用tuxedo
另一种方式是将Tuxedo网关部署在任意用户环境下,Tuxedo网关通过WorkStation方式与Tuxedo通信。
第一种方式效率较高,但仅限于访问同一用户环境下的Tuxedo服务;第二种方式具有更大的灵活性,可以访问不同Tuxedo平台的服务,但效率会受一定的影响。
4 总结
Tuxedo网关使基于Java和.NET平台的Web服务器能够实时访问Tuxedo服务,局域网内在WindowsJava客户端看到的单次访问时间可以达到1ms以内(消息长度1k以内),处理能力1800TPS(非极限,对应CPU仅15%左右)以上,为前后台之间的通信提供了一种新的解决方案,有望替代Jolt、WTC等产品的部分功能,节约成本。
这是自毕业以来独立完成的比较复杂的一个系统,也是最感兴趣的一个系统,基本上涵盖了从需求分析到设计、实现、测试的整个过程,在这个过程中得到了很多同事的帮助,学到了不少知识。
当亲自动手,从零开始的时候,很多事情并没有想象的那么简单。在这个过程中出现了许多意想不到的困难,很多时候甚至产生放弃的念头,幸运的是总能得到同事的支持和鼓励,风雨过后见彩虹,最终得以实现了最基本的功能。
补充2012年9月测试数据:
并发处理能力:14000QPS,非极限,单PC机客户端测试程序能力有限
服务端资源占用:CPU idle 35%,vsz 800M, rss 350M, loadAverage<2
服务端配置:UNIX, 2*2core(UltraSPARC,1.5GHz),16G Mem
客户端配置:PC WinXP,2*2core(Intel,2.2GHz), 2G Mem,120thread/process *7
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27448-1.html
tuxedo客户端调用java_tuxedo调用客户端_tuxedo调用java socket_调用tuxedo相关推荐
- java 调用 go_实践总结:在 Java 中调用 Go 代码
在 Java 中调用 Go 的大致过程如下go --> cgo --> jna --> java 整个过程要解决的问题主要两个:数据类型在两种语言中如何转化 何时清理无用的数据 下面 ...
- java kotlin相互调用_Kotlin的互操作——Kotlin与Java互相调用
原标题:Kotlin的互操作--Kotlin与Java互相调用 互操作就是在Kotlin中可以调用其他编程语言的接口,只要它们开放了接口,Kotlin就可以调用其成员属性和成员方法,这是其他编程语言所 ...
- java调用方法出现i 2a_性能-Java方法调用与使用变量
性能-Java方法调用与使用变量 最近,我与团队负责人就使用临时变量与调用getter方法进行了讨论. 很长时间以来,我一直认为,如果我必须多次调用一个简单的getter方法,我会将其放入一个temp ...
- 解决用 posman 调用 openai API 正常,用java代码调用超时问题
参考:https://github.com/PlexPt/chatgpt-java 一.接口调用 posman 调用正常 java 调用报错:ConnectException: Connection ...
- java中调用python
在Java中调用Python </h1><div class="clear"></div><div class="postBod ...
- 在Java中调用Python
写在前面 参考:https://www.cnblogs.com/nuccch/p/8435693.html 在微服务架构大行其道的今天,对于将程序进行嵌套调用的做法其实并不可取,甚至显得有些愚蠢.当然 ...
- 在Java中调用Python,java面试题,java初级笔试题
写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 写在 ...
- Java JNI调用IC卡读卡器
Java JNI调用IC卡读卡器 Java调用IC卡读卡器的DLL一般有以下2种方式: 1.使用JNative第三方库调用IC卡读卡器dll的接口. 2.使用JNI调用IC卡读卡器dll的接口. JN ...
- gRPC的通信方式-客户端流式、服务端流式、双向流式在Java的调用示例
场景 gPRC简介以及Java中使用gPRC实现客户端与服务端通信(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/ ...
- 服务器端调用智能合约,《精通以太坊:开发智能合约和去中心化应用》 ——3.4 远程调用以太坊客户端...
远程调用以太坊客户端 远程调用以太坊的客户端是指相比全功能客户端,只提供了一部分功能的客户端.这些客户端通常不会保存完整的区块链数据,所以它们的启动速度更快,也不会消耗大量的磁盘空间. 远程调用以太坊 ...
最新文章
- php删除指定对象的属性及属性值
- mysql 一条sql update多条记录
- python round函数_Python round() 函数
- 《Python Cookbook(第3版)中文版》——1.9 在两个字典中寻找相同点
- Python Django 常用命令:创建迁移文件/数据库建表/创建admin超级用户
- VLAN访问控制列表(VACL)的配置方法
- 强化学习扫盲贴:从Q-learning到DQN
- 应用容器Application container
- openresty 前端开发序 1
- unity摄影机depth模式_[蛮牛教程] Unity3D 浅析-Camera(摄像机)
- 算法入门:股票最大收益
- 评职称自费出书多少钱
- /deep/ 在谷歌浏览器89+版本失效问题解决
- 【引用】DMA内存申请--dma_alloc_coherent
- 2021年展望Android原生开发的现状,你不懂还不学?
- 网易邮箱支持手机收发邮件的服务器,手机如何使用IMAP服务收发网易的邮件
- 网站银联支付证书更换
- 要求树根像果实一样作贡献,就只好把它做柴烧了
- python和java学哪个好-Python和Java二选一该学啥?
- 关于@GeneratedValue和@GenericGenerator的学习笔记
热门文章
- java操作pdf之iText快速入门
- Python爬取北京市所有电子眼名,再也不怕被隐藏摄像头偷拍
- RBF神经网络滑模控制
- 在Ubuntu 将PHP5升级到PHP7.0 PHP7.1
- php网页版进销存源码ERP多仓库管理系统源码
- 软考 java程序设计,软考程序员考点Java语言程序设计之数组
- Win7安装IIS出错,总是提示“出现错误。并非所有的功能被成功更改。”
- visio2013剪除_Visio 2003 图形剪切合并 高级技巧
- 目标检测应用竞赛 | 天池铝型材表面瑕疵(含数据集、详细解决方案)
- 火焰之纹章java武器代码_《火焰纹章回声:另一个英雄王》金手指全代码一览 代码大全...