如何为 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。