代码之家  ›  专栏  ›  技术社区  ›  Loki Astari

SOA负载平衡名称服务器研究

  •  2
  • Loki Astari  · 技术社区  · 14 年前

    在研究SOA(面向服务的体系结构)时,主要的问题似乎是在多个主机之间分配服务负载,然后管理这些主机(使主机离线或添加新主机)。

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

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

    2 回复  |  直到 13 年前
        1
  •  4
  •   Miklos Csuka    14 年前

    SOA是一套高级软件架构指导原则。它不是技术标准或建议,与技术实现细节(如负载平衡)无关。

    负载平衡是基于寻址的,它依赖于服务访问技术。 以“SOA方式”构建的系统可能使用不同的服务访问技术,例如SOAP(通过HTTP、JMS等)、REST、通过JMS的异步XML消息等。

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

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

    您还可以使用ESB软件,例如Oracle服务总线或Tibco AMX服务总线。使用ESB,您可以轻松地为服务实例创建负载平衡代理。代理可以通过一些逻辑进行增强,比如查找数据库表以获取指导。

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

        2
  •  0
  •   Loki Astari    14 年前

    在读了很多书之后,我实际上在寻找的概念是 Enterprise Service Bus ESP .

    虽然它没有显式定义一个显式协议,但它定义了一种体系结构样式,允许解决我上面提到的问题。