技术开发 频道

构建弹性SOA基础架构

    最终两个工作线程(服务器 1 和服务器 2 上分别一个)在此事务期间都被阻塞。另外,还进行了两次 RMI。这些都会带来开销,减少服务器处理容量。

     

    图 8. 客户事务示例

    从性能而言,开销最大的操作通常是数据和返回值的序列化和反序列化以及请求和响应的加密与解密。这些开销可以在服务并行配置时加以避免。此外,在 z/OS 之类按照执行指令收取费用(可以作为 MIPS 的示例)的平台上,出现这种以事务为单位的开销的费用将会极大地增加部署成本。

    SOA 与队列模型

    队列模型可以帮助确保 SOA 的稳定性和生产可用性。通过队列模型,不仅可以可视地对系统和各种参数加以表示(如超时和平均响应时间),而且还能够了解其对系统的影响。图 9 显示了队列模型的一个示例。

     

    图 9. 队列模型示例

    其中的关键是能够改变超时概率和超时值。然后可以进行计算,以确定每个线程的服务速率(并据此得到整个服务器的服务速率)。代表客户的系统队列模型能够在实际发生前三十秒内预测 EC3 abend。

    队列模型能够帮助标识 SOA 中阻塞工作线程的影响。但要定义队列模型,必须了解组件及子系统间的相互依赖关系。此类模型的构造是本系列后续文章的重点。

    总结

    本文说明了细微(但仍然重要)设计问题会如何对 SOA 的稳定性造成巨大的影响。文中提出了几个特定的、具有潜在问题的设计领域,如果在实现时未对这些进行恰当考虑,可能会增加 SOA 基础架构的脆弱性,从而降低 SOA 部署的总体稳定性。

    本文的目的是向 SOA 设计者介绍对 SOA 弹性造成影响(正面和负面)的重要因素。本系列的后续文章将讨论此处所述问题的解决方案,包括可帮助促进问题 SOA 的稳定性的短期直接解决方案和用于构建弹性 SOA 的长期的全面性解决方案。

0
相关文章