Pulsar GeoReplication异常:US-WEST生产消息无法在US-EAST消费
检查跨集群主题权限
执行命令查看US-WEST同步到US-EAST的主题权限配置:pulsar-admin topics permissions get persistent://<tenant>/<namespace>/<topic>确认消费者对应的角色已被授予
consume权限,若缺失则执行:pulsar-admin topics permissions grant persistent://<tenant>/<namespace>/<topic> --role <consumer-role> --actions consume验证集群配对状态
在US-WEST集群执行命令确认配对集群列表:pulsar-admin clusters get-replication-clusters <us-west-cluster-name>确保US-EAST集群在列表中;同时在US-EAST集群执行相同命令,确认US-WEST已配置为配对集群。另外,通过telnet测试US-WEST broker到US-EAST broker 6650端口的连通性,排除防火墙/安全组拦截。
核对命名空间复制配置
检查US-WEST集群目标命名空间的复制集群配置:pulsar-admin namespaces get-replication-clusters <tenant>/<namespace>若US-EAST不在列表中,执行命令添加:
pulsar-admin namespaces set-replication-clusters <tenant>/<namespace> --clusters <us-east-cluster-name>分析Broker日志
查看US-WEST集群broker日志(默认路径/var/log/pulsar/pulsar-broker.log),搜索geo-replication或replication关键词,排查是否有消息同步超时、权限拒绝等报错;同时查看US-EAST集群broker日志,确认是否存在主题接收失败的异常。确认消费者订阅配置
确保消费者订阅的是跨集群同步后的完整主题路径(格式为persistent://<tenant>/<namespace>/<topic>),且消费者连接的是US-EAST集群的broker服务地址,而非US-WEST集群地址。检查消息留存与去重配置
查看US-WEST集群主题的retention设置:pulsar-admin topics get-retention persistent://<tenant>/<namespace>/<topic>确认留存时间足够覆盖同步延迟;若开启了消息去重,可临时关闭该功能测试是否因去重规则导致消息被过滤。
内容的提问来源于stack exchange,提问作者Sathiskumar Perumal

