扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:Snehal Antani 来源:论坛整理 2007年12月15日
关键字:
在本页阅读全文(共4页)
某个特殊的客户遇到了以下问题,导致一切变得异常糟糕:
图 7. 阻塞线程的连锁效应
阻塞工作线程和不当的服务部署与分配可能会极大地降低中间件基础架构的总体性能。这可通过从 J2EE 和 CORBA 领域获得的最佳实践予以解决。这些最佳实践包括并列配置相互连接的应用程序模块,并尽可能减少有些分布式域中的远程调用数量。实际上,相同进程(例如 Java Virtual Machine [JVM] 或寻址空间)中并列执行的服务可以通过优化加以改进,例如按引用传递值、在当前执行线程上执行,以及避免对网络堆栈进行遍历。远程访问服务可能至少会导致随后发生过载。
服务使用者必须:
服务提供者必须:
图 8 给出了基于实际客户部署的场景。对于此客户,多个组件在单个全局事务范围内进行大量的交互。在此场景中,系统不仅可能会在任意时间存在大量阻塞工作线程,而且还表现出性能低效,且会产生较高的每秒百万条指令(Mmillions-of-Instructions-Per-Second,MIPS)成本。
让我们对图 8 进行一下详细分析,以便您了解应该如何解释此图:
1、组件 1 通过 Remote Method Invocation over Internet InterORB Protocol (RMI/IIOP) 调用组件 2。组件 1 阻塞并等待组件 2 响应。
2、组件 2 然后通过 RMI/IIOP 调用组件 3。组件 2 等待组件 3 响应。组件 2 和组件 1 现在都被阻塞。
3、组件 3 响应组件 2。
4、组件 2 响应组件 1,事务完成。
最终两个工作线程(服务器 1 和服务器 2 上分别一个)在此事务期间都被阻塞。另外,还进行了两次 RMI。这些都会带来开销,减少服务器处理容量。
图 8. 客户事务示例
从性能而言,开销最大的操作通常是数据和返回值的序列化和反序列化以及请求和响应的加密与解密。这些开销可以在服务并行配置时加以避免。此外,在 z/OS 之类按照执行指令收取费用(可以作为 MIPS 的示例)的平台上,出现这种以事务为单位的开销的费用将会极大地增加部署成本。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者