Docker容器发生更改后WSO2丢失API
我有使用WSO2 API Manager 2.0.0的另一个问题:我已经在docker中使用三个容器(一个用于APIM,一个用于分析,另一个用于MySQL)安装它,我用自定义版本replace一些configuration文件(例如DB,服务器名称,网关设置…)。 APIM和Analytics都configuration为将数据保存在MySQL容器中,并且能够看到数据库中的更改。
问题是,在重build容器后,我无法在发布者和商店中find我的API。 数据库中的更改仍然存在,我可以看到所有API的统计信息,如果尝试使用相同的名称或上下文创build新的API,但出现新的构build后,该存储总是空的,则会出现错误。
我也试着把/ repository / deployment / server / synapse-config / default和/ repository / tenants /放在两个卷中,我可以看到/…/default/api/中为我的API创build的文件,但我无法弄清楚这个问题。 我应该坚持一些额外的目录中没有提到的指南?
如果可能的话,我不希望把整个APIM和分析家的数量都放在一起。
首先,检查工件是否可以位于资源浏览器中 。
如果你能findAPI相关的文件,那么这个问题与索引有关。 执行以下操作重新索引registry中的工件:
- 重命名
<APIM_2.0.0_HOME>/repository/conf/registry.xml
文件中的<APIM_2.0.0_HOME>/repository/conf/registry.xml
。 如果您使用集群/分布式API Manager设置,请更改API发布者节点中的文件。 例如,将/_system/local/repository/components/org.wso2.carbon.registry/indexing/lastaccesstime
registrypath更改为/_system/local/repository/components/org.wso2.carbon.registry/indexing/lastaccesstime_1
。 - closuresAPIpipe理器,备份并删除
<APIM_2.0.0_HOME>/solr
目录。 - 最后启动APIpipe理器。
Api信息驻留在数据库和文件系统中(/ repository / deployment / server / synapse-config / default / api)registry工件可能没有正确索引。 你可以尝试跟随?
- 删除太阳目录。
- 打开registry.xml并如下所示更改以下行。 <lastAccessTimeLocation> / _ system / local / repository / components / org.wso2.carbon.registry / indexing / lastaccesstime-1
- 现在重新启动服务器。 服务器将重新索引所有文件。
还要确保数据库已正确configuration。 特别registry安装相关的configuration。