我已经使用基于SVN的部署同步设置了一个分布式的集群WSO2 API管理器1.6.0环境.SVN将在启动时执行,获取SVN存储库中的任何新内容。
TID: [0] [AM] [2014-10-30 14:52:57,790] INFO {org.apache.synapse.rest.API} - Initializing API: admin--TestAPI_Phil:v0.1 {org.apache.synapse.rest.API}
TID: [0] [AM] [2014-10-30 14:52:57,798] INFO {org.apache.synapse.deployers.APIDeployer} - API named 'admin--TestAPI_Phil:v0.1' has been deployed from file : /opt/wso2am-1.6.0/repository/deployment/server/synapse-configs/default/api/admin--TestAPI_Phil_v0.1.xml {org.apache.synapse.deployers.APIDeployer}
然而,几分钟后,svnClientBundle jar执行它的工作,它就会进入休眠状态,并且不会在更新时重新激活,尽管Store/Publisher说已经更新了网关:
TID: [0] [AM] [2014-10-30 15:21:06,965] INFO {org.apache.synapse.rest.API} - Initializing API: admin--TestAPI-2:v0.1 {org.apache.synapse.rest.API}
TID: [0] [AM] [2014-10-30 15:21:20,115] INFO {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask} - Sent [SynchronizeRepositoryRequest{tenantId=-1234, tenantDomain='carbon.super', messageId=a3e77858-985d-4616-9b50-d6c9b47c0bf2}] {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask}
网关不会获取正在被推送的新API。我如何让WSO2意识到有一个更新,或者使用svnClientBundle-1.0.0.jar定期检查svnClientBundle-1.0.0.jar的脚本?我应该做一个BeanShell脚本吗?
具有完整日志输出的GitHub文档位于以下位置:https://gist.github.com/predatorian3/024193918330af2140bb
我还跟踪了hte文件:
https://docs.wso2.com/display/AM140/SVN-Based+Deployment+Synchronizer
https://docs.wso2.com/display/CLUSTER420/SVN-based+Deployment+Synchronizer
基于SVN的部署同步和集群API管理器的文档相互冲突,并且说svnClientBundle-1.0.0.jar需要在不同的位置。
发布于 2014-11-03 04:28:53
正如您从docs 1中看到的,svnClientBundle-1.0.0.jar必须始终复制到<PRODUCT_HOME>/repository/components/dropins
目录中。
部署同步器依赖于群集消息,因此需要确保产品集群正常工作。正如您所观察到的,服务器将在服务器启动时签出工件。之后,只有当服务器收到集群消息时,才会更新工件。
产品集群应该与2中提到的域相同。我们建议使用wka成员资格方案。
请先启动您的wka成员,然后启动其他服务器。您必须在wka成员的日志中看到“联接”消息。如果您没有看到这一点,那么<AM_HOME>/repository/conf/axis2/axis2.xml
中的集群配置肯定有问题。请确保在群集配置中使用IP地址。
我没在你的日志里看到连接信息。请检查您的配置。
因为您没有使用ELB,所以您只需要避免将ELB细节添加到axis2.xml中。
例如,如果您有两个网关节点,下面是axis2.xml所需的配置
网关1:
<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="true">
<parameter name="membershipScheme">wka</parameter>
<parameter name="domain">wso2.am.domain</parameter>
<parameter name="localMemberHost">192.168.10.1</parameter>
<parameter name="localMemberPort">4100</parameter>
<parameter name="properties">
<property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/>
<property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
</parameter>
<members>
</members>
</clustering>
网关2:
<clustering class="org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent" enable="true">
<parameter name="membershipScheme">wka</parameter>
<parameter name="domain">wso2.am.domain</parameter>
<parameter name="localMemberHost">192.168.10.2</parameter>
<parameter name="localMemberPort">4101</parameter>
<parameter name="properties">
<property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/>
<property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/>
</parameter>
<members>
<member>
<hostName>192.168.10.1</hostName>
<port>4100</port>
</member>
</members>
</clustering>
我希望这能帮到你。
https://stackoverflow.com/questions/26662948
复制相似问题