WSO2 ESB webservice负载平衡

时间:2016-01-21 16:45:07

标签: wso2 wso2esb

有没有办法在不同的服务器之间分配服务请求? ideia是web服务的高可用性,由wso2 esb控制。我将在多个服务器(jboss)中部署相同的服务,我打算wso2处理这个。 创建自定义代理时,“固定服务器”选项可以执行此操作吗?

2 个答案:

答案 0 :(得分:1)

“固定服务器”属性控制多个服务器中的代理服务部署。有时我们需要使用一个CAPP文件在多个服务器中部署工件,但可能需要在Selected服务器中部署代理服务工件。因此,在这种情况下,可以使用“固定服务器”属性。

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

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

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

您可以使用带有nginex,httpd。

等负载均衡器的群集设置来实现此目的

httpd nginx

答案 1 :(得分:0)

如果您需要使用固定服务器选项,可以在代理中添加名为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”是synapse服务器名称,其中应使用pinnedServers属性部署此代理服务。 接下来,您需要根据上面的代理

在axis2.xml中添加如下的synapse服务器实例名称
<parameter name="SynapseConfig.ServerName" locked="false">server1</parameter>

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

然后,在执行启动脚本wso2server.bat或wso2server.sh

时,需要通过指定 -DSynapseServerName = 属性将名称提供给Synapse服务器实例。

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

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