Google PubSub 排序密钥问题,未启用消息排序

Bér*_*ger 2 google-cloud-platform google-cloud-pubsub google-cloud-functions

我在将 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'
)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

未启用消息排序时,无法使用排序键发布消息。

test_order_pubsub没有其他订阅

你能帮忙解决这个问题吗?谢谢!

Kam*_*osn 7

使用 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,
    )
)
Run Code Online (Sandbox Code Playgroud)