我关注https://docs.wso2.com/display/CLUSTER44x/Clustering+API+Manager+2.0.0
和
在上述文件中引用。我使用的是Postgress而不是MySQL,但我知道JDBC连接器在这个配置中工作,并且在单实例模式下运行wso2am服务器。
我收到了主题中提到的错误。我启动密钥管理器,然后使用./wso2server.sh -Dprofile = traffic-manager的流量管理器然后获得异常,说流量管理器上的索引失败以及密钥管理器上的无效用户错误。这告诉我流量管理器确实连接到keymanager注册表(或尝试),因此端口是打开的等等。我也通过使用我的浏览器连接到端点并使用telnet到端口来检查这一点。
我找不到任何文档或注册表,碳或轴配置文件中用于连接到注册表的用户的任何引用。或者我错过了什么?
此致 安德烈
我对registry.xml的更改
<currentDBConfig>wso2registry</currentDBConfig>
<readOnly>false</readOnly>
<enableCache>true</enableCache>
<registryRoot>/</registryRoot>
<dbConfig name="wso2registry">
<dataSource>jdbc/WSO2CarbonDB</dataSource>
</dbConfig>
<remoteInstance url="https://api-keymanager-1:9443/registry">
<id>InstanceId</id>
<cacheId>jdbc:postgresql://api-db-1:5432/WSO2_CARBON_DB</cacheId>
<dbConfig>wso2registry</dbConfig>
<readOnly>false</readOnly>
<enableCache>true</enableCache>
<registryRoot>/</registryRoot>
<username>wso2am</username>
<password>wso2am</password>
<driverClassName>org.postgresql.Driver</driverClassName>
</remoteInstance>
<mount path="/_system/config" overwrite="true">
<instanceId>InstanceId</instanceId>
<targetPath>/_system/config</targetPath>
</mount>
<mount path="/_system/governance" overwrite="true">
<instanceId>InstanceId</instanceId>
<targetPath>/_system/governance</targetPath>
</mount>
我使用WSO2_CARBON_DB作为注册表数据库,我打算使用CustomUserDB。 如果我注释掉安装部分我没有问题。如果我把它放入,我的用户错误无效,如上所述。
我可以补充一点,我正在运行api-keymanager-1主机作为keymanager,这个配置在我开始的api-trafficmanager-1主机上./wso2server.sh -Dprofile = traffic-manager
我有一个问题,所有这个InstanceId都没有在任何配置的api-keymanager-1上的任何地方定义,这在文档中没有提到,除非我错过了什么?这有关系吗?
答案 0 :(得分:0)
您似乎有两个问题。首先,通过停止服务,备份和删除/ APIM / solr目录以及重新启动服务来重新索引Solr索引。这应解决索引问题。
接下来,您的注册表配置不太正确。在APIM 1.10.0中配置远程注册表安装时,我们遇到了类似的问题。您的registry.xml定义中需要两个dbconfig
个节点,并且您的远程实例应指向远程治理注册表dbconfig
:
<currentDBConfig>wso2registry</currentDBConfig>
...
<dbConfig name="wso2registry">
<dataSource>jdbc/WSO2CarbonDB</dataSource> <!-- this is the local h2 db -->
</dbConfig>
<dbConfig name="govregistry">
<dataSource>your-remote-dbsource</dataSource> <!-- this is the remote db -->
</dbConfig>
<remoteInstance url="remote-endpoint-here">
<id>InstanceId</id>
<dbConfig>govregistry</dbConfig>
...
</remoteInstance>
<mount path="/_system/governance" overwrite="true">
<instanceId>InstanceId</instanceId>
<targetPath>/_system/governance</targetPath>
</mount>
WSO2没有正确解释为什么需要本地Carbon db来实现远程注册表设置,但这就是我们配置注册表的方式,它适用于1.10.0和2.0的分布式部署。 / p>