Google PubSub带ordering key发布提示消息排序未启用问题求助
问题原因及修复方案
1. 核心问题:发布目标主题配置不匹配
你当前配置了消息排序订阅的主题为test_order_topic,但发布代码中指定的目标主题名称为test_order_pubsub,二者名称不一致:
代码中写的发布路径:
projects/project_id/topics/test_order_pubsub
实际开启排序订阅的主题:test_order_topic
如果test_order_pubsub主题下没有任何启用了消息排序的订阅,就会直接触发你收到的Cannot publish a message with an ordering key when message ordering is not enabled报错。
2. 其他潜在排查点
如果确认主题名称匹配后仍有报错,可检查以下配置:
- 确认订阅的
enableMessageOrdering配置已生效:新修改的订阅配置最多有1分钟的延迟,等配置生效后再测试 - 确认该订阅确实绑定在你发布的目标主题下,没有出现跨主题绑定的问题
- 升级
google-cloud-pubsub依赖包到最新版本,避免旧版本库的兼容问题 - 重启Cloud Function实例清空客户端缓存:如果此前实例向该主题发布过不带排序键的消息,客户端可能缓存了旧的主题配置
修复后的发布代码示例
publisher.publish( 'projects/project_id/topics/test_order_topic', json.dumps({ "index": len(WORDS) }).encode('utf-8'), ordering_key='key1' )
内容的提问来源于stack exchange,提问作者Béranger
相关产品推荐
相关产品推荐

