google-cloud-platform - Google PubSub 排序密钥问题,未启用消息排序
问题描述
在将 google cloud pubsub 消息发布到启用了排序的订阅时,我遇到了一个问题。
我有一个 pubsub 主题:test_order_topic
带有消息排序的推送订阅:已启用(enableMessageOrdering: true
)。
但是当使用 python Google Cloud 函数发布到这个主题时:
publisher.publish(
'projects/project_id/topics/test_order_pubsub',
json.dumps({ "index": len(WORDS) }).encode('utf-8'),
ordering_key='key1'
)
我收到以下错误:
未启用消息排序时,无法使用排序键发布消息。
test_order_pubsub
没有其他订阅
你能帮忙解决这个问题吗?谢谢!
解决方案
使用 Cloud Pub/Sub 客户端库发布时,需要在客户端库中启用排序。这可确保客户端库按正确顺序排列消息。为此,请enable_message_ordering
在以下位置设置属性PublisherOptions
:
from google.cloud import pubsub_v1
publisher_client = pubsub_v1.PublisherClient(
publisher_options = pubsub_v1.types.PublisherOptions(
enable_message_ordering=True,
)
)
推荐阅读
- php - 它有时会使用 HLS 播放视频。例如,它播放 3 小时。10小时不播放视频
- javascript - 根据条件自动打开模态
- sql - 如何使用 CASCADE DELETE 删除所有租户数据
- python - Python:从排序数组中采样 n 个数字,确保它们彼此尽可能远
- active-directory - 我可以在 LDAP/radius/Tacas/Active Directory 中自定义身份验证吗
- xml - XSL FO 的两列布局流程
- arrays - Modelsim VHDL 数组初始化给出警告 (vcom-1320)
- python - 无法解决 ValueError: 层序贯_1 的输入 0 与层不兼容
- c# - 如何使用 Xamarin 表单创建功能发现
- c# - 在 Unity 3D 中,是否有理解何时引用变量以及何时将其复制到新变量的一般规则?