2015-05-19 106 views
0

加入羣集當前我正在一個項目中工作,並且在羣集中實施ELB作爲負載均衡器和Identity Server作爲身份和PDP提供程序時遇到問題。WSO2 Identity Server節點不使用ELB

我將不勝感激這麼多的任何幫助,您可以給我用下面的實現:

場景

  • 兩個ELB在故障轉移模式與虛擬IP虛擬和保持活動,分離機器中的每個節點

  • 一個ESB集羣ESB具有一個管理器節點和兩個工人節點;這些節點位於與ELB節點分離的其他機器中。

  • 一個IS節點有兩個節點;這些是在與ELB和ESB機器分開的不同機器上。
  • 我打開LDAP作爲用戶存儲
  • SVN爲使用Hazelcast
  • 所有節點共享的UM DB進行同步的假象庫和共享註冊表
  • 我已經應用了所有的補丁適用於內核4.2 .0到ELB,IS和ESB的節點(包括包含0010的節點)

ELB節點正確啓動,對於加入羣集的ESB節點沒有任何問題,它是相同的;我可以在ELB和ESB wso2carbon.log中驗證這一點;當我從ELB向ESB工作者節點發送請求時,我也驗證了負載平衡。

但是,當我開始第一IS節點I得到下列消息在IS

TID的wso2carbon.log:[0] [IS] [2015年5月18日20:09:30178] INFO { org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent} - 集羣域:example.wso2is.domain {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent}

TID:[0] [IS] [2015-05-18 20:09:30,179]信息{org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent} - 使用基於wka的成員資格管理方案{org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent}

TID:[0] [IS] [2015-05-18 20:09:30,180] INFO {org.wso2.carbon.core.clustering.hazelcast.util.MemberUtils} - 添加成員:主機:IP_Virtual_ELB,遠程主機:null,端口:4050,HTTP:-1,HTTPS:-1,域:null,子域:null,活動:true {org.wso2.carbon.core.clustering.hazelcast.util.MemberUtils}

TID:[0] [IS] [2015-05-18 20:09:35,468]信息{org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent} - Hazelcast在5286ms初始化{org.wso2.carbon.core .clustering.hazelcast.HazelcastClusteringAgent}

TID:[0] [IS] [2015-05-18 20:09:35,546] INFO {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent} - 本地成員:[4c91357f-b563-49a2-b71b-887b3109642a] - 主機:IP_Nodo1_Identity,遠程主機:null,端口:4301,HTTP:9763,HTTPS:9443,域:example.wso2is.domain,Sub-domain:mgt,Active:true {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent}

TID: [0] [IS] [2015-05-18 20:09:35,558]信息{org.wso2.carbon.core.clustering.hazelcast.util。MemberUtils} - 添加成員:主機:IP_Nodo1_Identity,遠程主機:null,端口:4301,HTTP:9763,HTTPS:9443,域:interacciones.wso2is.domain,子域:mgt,活動:true {org.wso2.carbon .core.clustering.hazelcast.util.MemberUtils}

TID:[0] [IS] [2015-05-18 20:09:35,650] INFO {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent } - 羣集初始化已完成{org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent}

TID:[0] [IS] [2015-05-18 20:09:35,652] INFO {org.apache。 tomcat.util.net.NioSelectorPool} - 2015年5月18日下午8時09分35秒org.apache.tomcat.util.net.NioSelectorPool getSharedSelector INFORMACIÓN:使用servlet的共享選擇器寫入/讀取 {org .apache.tomcat.util.net.NioSelectorPool}

工商註冊信息:[0] [IS] [2015-05-18 20:09:35,653]信息{org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent } - 當選此構件[4c91357f-b563-49a2-b71b-887b3109642a]作爲協調員簇[example.wso2is.domain] {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent}

而ELB的wso2carbon.log沒有任何消息引用剛剛啓動的IS節點。是

在ELB的loadbalancer.conf定義的服務如下:

esb {     
    domains {    
       example.wso2esb.domain { 
            tenant_range *; 
                group_mgt_port 4000; 
            worker { 
                    hosts wso2esb.example.com; 
            } 
         } 
       } 
    } 

identity { 
    domains { 
         example.wso2is.domain { 
            tenant_range *; 
            group_mgt_port 4050; 
            mgt{ 
                hosts wso2is.example.com; 
            } 
        } 
    } 
} 

如果我嘗試使用ELB的cirtual IP從客戶端PC訪問IS控制檯,我得到以下的消息ELB日誌:

TID:[0] [ELB] [2015-05-19 13:13:31,705]錯誤{org.wso2.carbon.lb.endpoint.endpoint.TenantAwareLoadBalanceEndpoint} - 沒有應用程序成員可用{ org.wso2.carbon.lb.endpoint.endpoint.TenantAwareLoadBalanceEndpoint}

th的/ etc /主機的E含量爲:

客戶:

ELB_Virtual_IP wso2is.example.com

ELB_Virtual_IP wso2esb.example.com

ESB_Manager_IP mgt.wso2esb.example。 com

ELB節點:

ELB_Virtual_IP wso2is.example.com

ELB_Virtual_IP wso2esb.example.com

ESB_Manager_IP mgt.wso2esb.example.com

IS節點:

ELB_Virtual_IP wso2is .example.com

ESB節點:

ELB_Virtual_IP wso2is.example。COM

ELB_Virtual_IP wso2esb.example.com

ESB_Manager_IP mgt.wso2esb.example.com IS節點的

axis2.xml(聚類部)是

<parameter name="AvoidInitiation">true</parameter> 

    <parameter name="membershipScheme">wka</parameter> 
    <parameter name="domain">example.wso2is.domain</parameter> 

    <parameter name="mcastPort">45564</parameter> 

    <parameter name="mcastTTL">100</parameter> 

    <parameter name="mcastTimeout">60</parameter> 

    <parameter name="localMemberHost">IS_NODE_IP</parameter> 
    <parameter name="localMemberPort">4301</parameter> 
    <parameter name="properties"> 
     <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/> 
     <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/> 
     <property name="subDomain" value="mgt"/> 
    </parameter> 

    <members> 
     <member> 
      <hostName>ELB_Virtual_IP</hostName> 
      <port>4050</port> 
     </member> 
    </members> 

    <groupManagement enable="false"> 
     <applicationDomain name="interacciones.wso2is.domain" 
          description="IS group" 
          agent="org.wso2.carbon.core.clustering.hazelcast.HazelcastGroupManagementAgent" 
          subDomain="mgt" 
          port="4301"/> 
    </groupManagement> 
</clustering> 

carbon.xml節點

<HostName>wso2is.example.com</HostName> 

<MgtHostName>wso2is.example.com</MgtHostName> 
+0

最近我發現ELB識別IS節點,如果它修補到patch00009但不識別ESB節點。另外,如果ELB被修補到patch0010,那麼它會識別ESB節點,但不識別IS節點。在我看來,應用碳內核補丁與實施Hazelcast庫處理所有與節點同步相關的內容時存在不一致。 –

回答

0

似乎是這樣的Hazelcast問題在船尾呃將內核補丁應用到ELB。沒有配置問題可以在給定的配置中看到。請檢查與Wso2的任何Hazelcast相關的修復此問題,同時您可以檢查刪除內核patch0009和patch0010。

謝謝。

+0

感謝您的意見。我已經測試了ELB沒有任何補丁,我的意思是開箱測試,既不與ESB也不與IS兼容。我已經修補了ESB,直到patch0010,以及在wso2網站中提出的安全修補程序的IS。安全補丁和所有這些東西的原因是這種部署最終投入生產。 –