研究SOA LoadBalancing NameServers

时间:2010-08-27 07:11:38

标签: soa load-balancing nameservers

在查看SOA(面向服务的体系结构)时,主要问题似乎是跨多个主机分配服务负载,然后管理这些主机(使主机脱机或添加新主机)

当一个服务与另一个服务进行通信时,它不需要知道任何主机信息(在应用程序级别)。相反,SOA环境应该能够根据主机当前负载特征将服务请求路由到特定主机(因此它必须知道正在运行服务的所有热点及其相对负载)。

是否存在任何现有的服务开放协议来报告它们的存在并加载到SOA环境。

2 个答案:

答案 0 :(得分:4)

SOA是一组高级软件架构指南。它不是技术标准或推荐,它与技术实现细节无关,如负载平衡。

负载均衡基于寻址,这取决于服务访问技术。 以“SOA方式”构建的系统可能正在使用不同的服务访问技术,如SOAP(通过HTTP,JMS等),REST,通过JMS的异步XML消息等。

使用SOAP,服务使用者可以查找UDDI注册中心以找到服务提供者。一些最新的UDDI注册表软件提供简单(例如循环)负载平衡。 另一个SOAP想法是使用WS-Addressing,但它并不真正用于负载平衡。

我认为目前负载均衡的最佳位置是底层网络传输层。使用HTTP传输,您可以选择硬件或软件(例如Apache HTTPD模块)负载平衡器,它们可以根据响应时间和超时调整分布。通过JMS传输,最流行的JMS服务器提供某种形式的负载平衡。其他协议 - 如CORBA或Rendezvous - 通常需要自定义解决方案。

您还可以使用ESB软件,例如Oracle Service Bus或TIBCO AMX Service Bus。使用ESB,您可以轻松地为服务实例创建负载平衡代理。可以使用某些逻辑来增强代理,例如查找数据库表以获得指导。

正如您所看到的,服务负载平衡没有一个通用的解决方案。最佳解决方案将基于实际的实施架构和供应商的建议。

答案 1 :(得分:0)

在阅读了很多我真正想要的概念是Enterprise Service Bus ESP

虽然它没有明确定义显式协议,但它定义了一种架构风格,可以解决我上面提到的问题。