WSO2 SVN同步器与群集上的管理器更新同步的巨大延迟
我正在Windows PC上的VM上运行WSO2 APIM 1.10.0测试环境。它配置为使用MySQL服务器(我也在PC上运行MiraDB)。一切正常 最近,我想通过在我的电脑上设置3个虚拟机来尝试WSO2群集环境:WSO2 SVN同步器与群集上的管理器更新同步的巨大延迟,wso2,wso2-am,wso2carbon,Wso2,Wso2 Am,Wso2carbon,我正在Windows PC上的VM上运行WSO2 APIM 1.10.0测试环境。它配置为使用MySQL服务器(我也在PC上运行MiraDB)。一切正常 最近,我想通过在我的电脑上设置3个虚拟机来尝试WSO2群集环境: 第一个是运行publisher、store、KM等(我使用的是offset 1,所以端口是94449764等) 另外两个分别运行网关工作端口(“来宾”端口8243,映射到“主机”端口8243和8943) 我还运行VisualSVN服务器来在它们之间进行同步 在manager节
- 第一个是运行publisher、store、KM等(我使用的是offset 1,所以端口是94449764等)
- 另外两个分别运行网关工作端口(“来宾”端口8243,映射到“主机”端口8243和8943)
<DeploymentSynchronizer>
<Enabled>true</Enabled>
<AutoCommit>true</AutoCommit>
<AutoCheckout>true</AutoCheckout>
<RepositoryType>svn</RepositoryType>
<SvnUrl>https://10.0.2.2/svn/apigw/</SvnUrl>
<SvnUser>...</SvnUser>
<SvnPassword>...</SvnPassword>
<SvnUrlAppendTenantId>true</SvnUrlAppendTenantId>
</DeploymentSynchronizer>
但在manager节点上所做的更改填充到worker之前,需要大约10分钟的时间
例如,在16:29在manager中添加OFER2API
TID: [-1234] [] [2017-03-07 16:29:01,156] INFO {org.apache.synapse.rest.API} - Initializing API: admin--ofer2:v1.0.0
TID: [-1234] [] [2017-03-07 16:29:16,104] INFO {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask} - Sent [SynchronizeRepositoryRequest{tenantId=-1234, tenantDomain='carbon.super', messageId=64959660-b2e6-4293-ad9c-3b0d68229976}]
16:34到达客户处,5分钟后:
TID: [-1234] [] [2017-03-07 16:34:14,134] INFO {org.apache.synapse.rest.API} - Initializing API: admin--ofer2:v1.0.0
TID: [-1234] [] [2017-03-07 16:34:14,134] INFO {org.apache.synapse.deployers.APIDeployer} - API named 'admin--ofer2:v1.0.0' has been deployed from file : /AppMount/wso2worker-1.10.0/repository/deployment/server/synapse-configs/default/api/admin--ofer2_v1.0.0.xml
很多时候,这需要更多的时间(9-10分钟)
我打开了worker上的同步调试器,希望看到它每隔几秒钟就尝试与SVN存储库同步,但只看到它每隔几分钟尝试一次
还尝试了:
<SynchronizationPeriod>1</SynchronizationPeriod>
但是/api/am/publisher/0.9是publisher的REST,这是不相关的
日志中似乎没有其他有趣的内容
最后注意:对租户的更改根本不填充。我在manager上有tenant#1,我在SVN存储库上看到了它,但在worker上的目录/AppMount/wso2/repository/tenants为空。仅填充对超级碳[-1234]的更改。不确定是同一个问题还是其他问题
任何想法都将受到高度赞赏
后续行动#1,基于Pubci的输入
- 时间与所有三个节点同步
- 域在所有三个节点中都是相同的(我保留了默认值)
TID: [-1234] [] [2017-03-08 09:40:51,184] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNNotifyListener} - revert /AppMount/wso2/repository/deployment/server
TID: [-1234] [] [2017-03-08 09:40:58,139] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNNotifyListener} - update /AppMount/wso2/repository/deployment/server -r HEAD --depth=infinity
TID: [-1234] [] [2017-03-08 09:40:59,766] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNNotifyListener} - notify.at
TID: [-1234] [] [2017-03-08 09:41:00,103] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNBasedArtifactRepository} - files were updated to revision number: 15 using SVN Kit
从那时起,carbon scheduler tasks每15秒运行一次SVN sync:
TID: [-1234] [] [2017-03-08 09:41:45,213] DEBUG {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask} -
Running deployment synchronizer update... tenant : carbon.super
但是SVN同步器似乎没有更新服务器/部署下synapse配置中的文件
您提到这一点是因为经理的信息没有到达工人处
我确实看到经理发了一条信息:
TID: [-1234] [] [2017-03-08 08:49:48,121]
INFO {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask} -
Sent [SynchronizeRepositoryRequest{tenantId=-1234, tenantDomain='carbon.super',
messageId=a99ff1fc-58d8-44dd-8804-491216ae1a7c}]
我应该启用哪个调试来查看消息是否到达工作者?有关疑难解答,您可以检查以下内容
关于在manager节点中收到的错误消息,请检查api-manager.xml中的AuthManager配置。看起来您已将该值设置为admin/services。该值应为密钥管理器节点主机名。在您的情况下,它应该是manager节点的主机名。多亏了Pubci的输入,我发现了这个问题 a) 在manager和Worker的axis2.xml中,localMemberHost必须是10.0.2.2(这是从VM到其他主机的网关),而不是127.0.0.1:
<parameter name="localMemberHost">10.0.2.2</parameter>
在worker中,在API更改之后,我确实看到了这样一条信息,对于super.carbon以外的租户也是如此:
INFO {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusterMessageListener} -
Received ClusteringMessage: SynchronizeRepositoryRequest{tenantId=1, tenantDomain='0000s7.com', messageId=a573eeef-46d7-4a2b-bfc9-362296bb60d4}
针对群集上存在SVN问题的任何人的提示:
log4j.logger.org.wso2.carbon.core.deployment=DEBUG
log4j.logger.org.wso2.carbon.deployment.synchronizer=DEBUG
我根据您的输入更新了原始消息,并进行了一些后续操作。请参阅“跟进1”。请重新检查群集配置。在成员列表中,我可以使用127.0.0.1。基本上,成员列表中提到的IP地址都会提供给其他成员。他们使用该IP地址连接到另一个节点。因此不能使用127.0.0.1。LocalMemberPort应该是它自己的群集端口。对于manager,它是4500,而其他工作节点应该是4100和4200。您是否在任何日志中看到“已加入成员”消息。如果节点正确集群,您应该在这两个节点中的任何一个节点中看到这一点。域null是可以的。您看到的配置就是您所配置的配置。这并不意味着节点已正确聚集。成员加入日志应该在那里。
TID: [-1234] [] [2017-03-08 09:40:51,184] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNNotifyListener} - revert /AppMount/wso2/repository/deployment/server
TID: [-1234] [] [2017-03-08 09:40:58,139] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNNotifyListener} - update /AppMount/wso2/repository/deployment/server -r HEAD --depth=infinity
TID: [-1234] [] [2017-03-08 09:40:59,766] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNNotifyListener} - notify.at
TID: [-1234] [] [2017-03-08 09:41:00,103] DEBUG {org.wso2.carbon.deployment.synchronizer.subversion.SVNBasedArtifactRepository} - files were updated to revision number: 15 using SVN Kit
TID: [-1234] [] [2017-03-08 09:41:45,213] DEBUG {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask} -
Running deployment synchronizer update... tenant : carbon.super
TID: [-1234] [] [2017-03-08 08:49:48,121]
INFO {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask} -
Sent [SynchronizeRepositoryRequest{tenantId=-1234, tenantDomain='carbon.super',
messageId=a99ff1fc-58d8-44dd-8804-491216ae1a7c}]
<parameter name="localMemberHost">10.0.2.2</parameter>
<groupManagement enable="true">
<applicationDomain name="wso2.apim.domain"
description="APIM group"
agent="org.wso2.carbon.core.clustering.hazelcast.HazelcastGroupManagementAgent"
subDomain="mgt"
port="2233"/>
</groupManagement>
<groupManagement enable="true">
<applicationDomain name="wso2.apim.domain"
description="APIM group"
agent="org.wso2.carbon.core.clustering.hazelcast.HazelcastGroupManagementAgent"
subDomain="worker"
port="2233"/>
</groupManagement>
INFO {org.wso2.carbon.core.clustering.hazelcast.wka.WKABasedMembershipScheme} -
Member joined [6bf6ae47-bea4-4bc4-beec-9140a626781b]: /10.0.2.2:4200
INFO {org.wso2.carbon.core.clustering.hazelcast.HazelcastClusterMessageListener} -
Received ClusteringMessage: SynchronizeRepositoryRequest{tenantId=1, tenantDomain='0000s7.com', messageId=a573eeef-46d7-4a2b-bfc9-362296bb60d4}
log4j.logger.org.wso2.carbon.core.deployment=DEBUG
log4j.logger.org.wso2.carbon.deployment.synchronizer=DEBUG