构建弹性 SOA 基础设施之一

豆豆网   技术应用频道   2007年12月31日  【字号: 收藏本文

内容摘要:本系列描述构建弹性 SOA 基础设施的设计问题和技术,本文是其中的第 1 部分,重点介绍 IBM® WebSphere® Application Server for z/OS® 如何加入 SOA 以及其如何为 SOA 弹性做出贡献。

  问题场景示例

  某个特殊的客户遇到了以下问题,导致一切变得异常糟糕:

  某个网络路由器出现了问题,导致 WebSphere Application Server 服务区域的很多工作线程阻塞。

  工作请求进入队列,等待工作线程。

  工作负载管理系统判断 the WebSphere Application Server 服务区域已挂起,发出了 EC3 abend 来终止服务进程。

  EC3 abend 导致正在处理的事务回滚。

  服务器服务速率缓慢再加上事务回滚的影响,导致其他 WebSphere Application Server 服务区域回滚。

  此影响将对很多其他服务和子系统重复,从而导致停机。

  图 7. 阻塞线程的连锁效应

构建弹性 SOA 基础设施之一

  阻塞工作线程和不当的服务部署与分配可能会极大地降低中间件基础设施的总体性能。这可通过从 J2EE 和 CORBA 领域获得的最佳实践予以解决。这些最佳实践包括并列配置相互连接的应用程序模块,并尽可能减少有些分布式域中的远程调用数量。实际上,相同进程(例如 Java Virtual Machine [JVM] 或寻址空间)中并列执行的服务可以通过优化加以改进,例如按引用传递值、在当前执行线程上执行,以及避免对网络堆栈进行遍历。远程访问服务可能至少会导致随后发生过载。

  服务使用者必须:

  对请求参数进行序列化。

  遍历网络堆栈,以寻找出站调用。

  如果安全策略要求,则对请求进行加密。

  阻塞工作线程并等待响应。

  遍历网络堆栈,以处理返回值。

  如果安全策略要求,则对请求进行解密。

  对返回值进行反序列化。

  恢复阻塞工作线程。

作者:Snehal Antani    责编:豆豆技术应用

正在加载评论...