如何为 API Manager 集群产品配置 Deployment Synchronizer
How to configure Deployment Synchronizer for API Manager cluster products
我已经配置了APIManager集群环境,并将产品分为GatewayManager、GatewayWorker、KeyManager、APIPublisher和APIStore。现在想配置svn-based deployment sychronizer,但是根据文档https://docs.wso2.com/display/CLUSTER420/SVN-based+Deployment+Synchronizer,svn synchronizer好像只能配置manager和worker节点,请问KeyManager, APIPublisher和API商店?
下面是我的 ELB loadbalancer.conf:
apimanager {
domains {
abc.wso2am.domain {
tenant_range *;
group_mgt_port 4560;
mgt {
hosts mgt.wso2am.abc.com;
}
worker {
hosts wso2am.abc.com;
}
}
abc.wso2am.key.domain {
tenant_range *;
group_mgt_port 4580;
key {
hosts key.wso2am.abc.com;
}
}
abc.api.pub-store.domain {
tenant_range *;
group_mgt_port 4590;
publisher {
hosts api-publisher.abc.com;
}
store {
hosts api-store.abc.com;
}
}
}
}
GatewayManager、KeyManager、APIPublisher和APIstore在carbon.xml的svn配置如下:
<DeploymentSynchronizer>
<Enabled>true</Enabled>
<AutoCommit>true</AutoCommit>
<AutoCheckout>true</AutoCheckout>
<RepositoryType>svn</RepositoryType>
<SvnUrl>svn://wso2svnrep:6001/depsync_am/</SvnUrl>
<SvnUser>test</SvnUser>
<SvnPassword>test</SvnPassword>
<SvnUrlAppendTenantId>true</SvnUrlAppendTenantId>
</DeploymentSynchronizer>
当我在API Publisher 中设置svn config 时,启动时出现如下错误:
TID: [0] [AM] [2015-03-10 06:56:50,609] ERROR {org.apache.catalina.core.ApplicationContext} - StandardWrapper.Throwable {org.apache.catalina.core.ApplicationContext}
org.springframework.beans.factory.BeanCreationException:创建名称为 'tokEP' 的 bean 时出错:使用键 [0] 设置 bean 属性 'serviceBeans' 时无法解析对 bean 'authzEndpointBean' 的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为 'authzEndpointBean' 的 bean 在 URL 中定义时出错 [jndi:/localhost/oauth2/WEB-INF/cxf-servlet.xml]:bean 实例化失败;嵌套异常是 java.lang.NoClassDefFoundError: org/wso2/carbon/identity/oauth/cache/AuthorizationGrantCacheKey
...
您需要为网关配置 depsync,因为 API 工件部署在网关中。如果你配置secondary userstore,你也需要对KM进行depsync。(也就是说,你需要有manager/worker)否则,你可以在所有节点中复制secondary userstore的user-mgt.xml。
我已经配置了APIManager集群环境,并将产品分为GatewayManager、GatewayWorker、KeyManager、APIPublisher和APIStore。现在想配置svn-based deployment sychronizer,但是根据文档https://docs.wso2.com/display/CLUSTER420/SVN-based+Deployment+Synchronizer,svn synchronizer好像只能配置manager和worker节点,请问KeyManager, APIPublisher和API商店? 下面是我的 ELB loadbalancer.conf:
apimanager {
domains {
abc.wso2am.domain {
tenant_range *;
group_mgt_port 4560;
mgt {
hosts mgt.wso2am.abc.com;
}
worker {
hosts wso2am.abc.com;
}
}
abc.wso2am.key.domain {
tenant_range *;
group_mgt_port 4580;
key {
hosts key.wso2am.abc.com;
}
}
abc.api.pub-store.domain {
tenant_range *;
group_mgt_port 4590;
publisher {
hosts api-publisher.abc.com;
}
store {
hosts api-store.abc.com;
}
}
}
}
GatewayManager、KeyManager、APIPublisher和APIstore在carbon.xml的svn配置如下:
<DeploymentSynchronizer>
<Enabled>true</Enabled>
<AutoCommit>true</AutoCommit>
<AutoCheckout>true</AutoCheckout>
<RepositoryType>svn</RepositoryType>
<SvnUrl>svn://wso2svnrep:6001/depsync_am/</SvnUrl>
<SvnUser>test</SvnUser>
<SvnPassword>test</SvnPassword>
<SvnUrlAppendTenantId>true</SvnUrlAppendTenantId>
</DeploymentSynchronizer>
当我在API Publisher 中设置svn config 时,启动时出现如下错误:
TID: [0] [AM] [2015-03-10 06:56:50,609] ERROR {org.apache.catalina.core.ApplicationContext} - StandardWrapper.Throwable {org.apache.catalina.core.ApplicationContext}
org.springframework.beans.factory.BeanCreationException:创建名称为 'tokEP' 的 bean 时出错:使用键 [0] 设置 bean 属性 'serviceBeans' 时无法解析对 bean 'authzEndpointBean' 的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为 'authzEndpointBean' 的 bean 在 URL 中定义时出错 [jndi:/localhost/oauth2/WEB-INF/cxf-servlet.xml]:bean 实例化失败;嵌套异常是 java.lang.NoClassDefFoundError: org/wso2/carbon/identity/oauth/cache/AuthorizationGrantCacheKey ...
您需要为网关配置 depsync,因为 API 工件部署在网关中。如果你配置secondary userstore,你也需要对KM进行depsync。(也就是说,你需要有manager/worker)否则,你可以在所有节点中复制secondary userstore的user-mgt.xml。