2016-01-21 168 views
0

在不同的服務器間分配服務請求是否有辦法?理想是web服務的高可用性,由wso2 esb控制。我將在多個服務器(jboss)中部署相同的服務,我打算處理這個問題。 創建自定義代理時,「固定服務器」選項可以執行此操作嗎?WSO2 ESB web服務負載平衡

回答

1

的 「固定服務器」 屬性控制在幾個服務器的代理服務的部署。有時,我們需要使用一個CAPP文件在多臺服務器中部署工件,但可能需要在選定的服務器中部署代理服務工件。因此在這種情況下可以使用「固定服務器」屬性。

您可以列出Synapse服務器名稱,其中應使用pinnedServers屬性部署此代理服務。它需要用逗號或空格分隔服務器名稱。如果沒有固定服務器列表,則代理服務將在所有服務器實例中啓動。

如果給出固定的服務器名稱列表,它只會在給定的命名Synapse服務器實例中啓動。

對於你的問題「是否有不同的服務器之間分配服務reuests辦法?

這可以使用集羣設置與像nginex,httpd的一個負載平衡器實現。

httpd nginx

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> 

在這裏「服務器1」就是這個代理服務應使用pinnedServers部署突觸服務器名稱屬性。 接下來,您需要添加突觸服務器實例名稱爲axis2.xml下面根據上面的代理

<parameter name="SynapseConfig.ServerName" locked="false">server1</parameter> 

您需要重新啓動ESB來從pinnedServers性能的影響。

然後,你需要通過指定-DSynapseServerName =屬性,當你執行的啓動腳本,wso2server.bat或wso2server.sh給名稱突觸服務器實例

請參考[1]作爲參考在代理中設置pinnedServers屬性。

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