WSO2 ESB 网络服务负载均衡

WSO2 ESB webservice load balance

有没有办法在不同的服务器之间分配服务请求? ideia 是 web 服务的高可用性,由 wso2 esb 控制。我将在不止一台服务器 (jboss) 中部署相同的服务,我打算 wso2 处理这个。 选项'pinned servers',在创建自定义代理时,可以这样做吗?

如果您需要使用固定服务器选项,您可以在代理中添加一个名为 pinnedServers 属性 的 属性,如下所示

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="myproxy"
       transports="https,http"
       pinnedServers="server1"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <outSequence>
         <send/>
      </outSequence>
      <endpoint>
         <address uri="http://www.google.com"/>
      </endpoint>
   </target>
   <description/>
</proxy>

此处 "server1" 是突触服务器名称,应使用 pinnedServers 属性在其中部署此代理服务。 接下来你需要根据上面的proxy

在axis2.xml中添加如下的synapse server instance name
<parameter name="SynapseConfig.ServerName" locked="false">server1</parameter>

您需要重新启动 ESB 才能从 pinnedServers 获得效果 属性。

然后您需要通过在执行启动脚本时指定 -DSynapseServerName= 属性 来为 Synapse 服务器实例指定名称,wso2server.bat 或wso2server.sh

请参考[1]作为在代理中设置pinnedServers属性的参考。

[1] https://docs.wso2.com/display/ESB403/Proxy+Services

"Pinned server" 属性控制代理服务在多个服务器中的部署。有时我们需要使用一个 CAPP 文件在多个服务器中部署工件,但可能需要在选定的服务器中部署代理服务工件。所以在这种情况下可以使用"Pinned server"属性。

您可以提供 Synapse 服务器名称列表,其中应使用 pinnedServers 属性部署此代理服务。它采用以逗号或 space 字符分隔的服务器名称。如果没有固定服务器列表,则将在所有服务器实例中启动代理服务。

如果给出固定服务器名称列表,它将仅在给定的命名 Synapse 服务器实例中启动。

对于您的问题“有没有办法在不同的服务器之间分配服务请求?

您可以使用带有负载均衡器(如 nginex、httpd)的集群设置来实现此目的。

httpd nginx