WSO2 API Manager 4.1.0主主集群节点同步异常求助
WSO2 API Manager 4.1.0主主集群API不同步问题解决
一、检查共享数据库事件通知配置
主主集群的API同步依赖数据库的事件触发机制,SQL Server环境下需确保以下配置:
- 启用SQL Server Service Broker:
执行SQL命令检查状态:
若SELECT name, is_broker_enabled FROM sys.databases WHERE name IN ('WSO2AM_DB', 'WSO2SHARED_DB');is_broker_enabled为0,执行启用命令:ALTER DATABASE WSO2AM_DB SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE; ALTER DATABASE WSO2SHARED_DB SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE; - 开启WSO2数据库连接的事件监听:
修改<APIM_HOME>/repository/conf/deployment.toml,确保以下配置存在:[database.apim_db] event_listener_enable = true [database.shared_db] event_listener_enable = true
二、配置集群成员发现与网关同步
确保两个节点的集群配置一致(仅local_member_host不同):
- 启用集群并配置成员列表:
[clustering] enabled = true local_member_host = "<当前节点IP>" # 如192.168.2.128或192.168.2.129 local_member_port = 4000 membership_scheme = "wka" members = ["192.168.2.128:4000", "192.168.2.129:4000"] - 开启网关运行时配置同步:
[apim.gateway.sync_runtime_configs] enabled = true
三、验证事件触发与同步日志
- 查看节点日志
<APIM_HOME>/repository/logs/wso2carbon.log,搜索GatewayConfigSynchronizer,确认是否有类似日志:INFO {org.wso2.carbon.apimgt.impl.gatewayartifactsynchronizer.GatewayConfigSynchronizer} - Received API update event for API: HelloWorldAPI v1.0.0 INFO {org.wso2.carbon.apimgt.impl.gatewayartifactsynchronizer.GatewayConfigSynchronizer} - Starting to synchronize API gateway configurations - 检查数据库触发器:
执行SQL命令确认WSO2自动创建的触发器存在:
若缺失,重新执行SELECT name FROM sys.triggers WHERE parent_class_desc = 'DATABASE' AND name LIKE 'APIM_%';<APIM_HOME>/dbscripts/apim/sqlserver.sql和shared/sqlserver.sql脚本。
四、确认网络连通性
- 确保集群节点间的4000(RMI集群端口)、9443(HTTPS端口)开放,可通过
telnet测试连通性:telnet 192.168.2.129 4000
五、文档遗漏说明
官方文档未明确强调SQL Server Service Broker的启用步骤,以及网关同步配置的强制开启,这是导致API不同步的核心原因。需保证两个节点的deployment.toml配置完全一致(除节点IP外)。
内容的提问来源于stack exchange,提问作者Jan Šerák
相关产品推荐
相关产品推荐

