具有订购密钥的订户亲和力,但没有*按顺序*交付
Subscriber affinity with Ordering Key, but without *in-order* delivery
据我了解,orderingKey指定了向特定主题发布消息时将消息发布到的分区。我还了解到,亲和力是为给定的排序键提供的,即哪个订阅者实例应该接收具有特定排序键的消息。现在我的问题:
订阅是否需要启用 排序,即确保按顺序传递消息以便与排序键相关联。我的用例实际上并不需要串行传递特定排序键的消息,但它确实需要亲和力(具有相同排序键的所有消息传递到相同的订阅者实例)。换句话说,我需要一种方法来确保给定的分区仅由单个订阅者处理,但我不关心它们在该分区内的各自顺序。
即使启用了有序交付,云 Pub/Sub 中的亲和力也是 best-effort。只要该密钥当前没有未完成的消息,密钥就可以在不同的订阅者之间转移。此 best-effort 亲和力仅适用于启用排序的订阅。对于无序订阅,排序键基本上被忽略,消息被任意传递给订阅者。目前,实现亲和力的最佳方法是使用属性和 filtering,其中订阅检查相同的属性并查找不同的值。
据我了解,orderingKey指定了向特定主题发布消息时将消息发布到的分区。我还了解到,亲和力是为给定的排序键提供的,即哪个订阅者实例应该接收具有特定排序键的消息。现在我的问题:
订阅是否需要启用 排序,即确保按顺序传递消息以便与排序键相关联。我的用例实际上并不需要串行传递特定排序键的消息,但它确实需要亲和力(具有相同排序键的所有消息传递到相同的订阅者实例)。换句话说,我需要一种方法来确保给定的分区仅由单个订阅者处理,但我不关心它们在该分区内的各自顺序。
即使启用了有序交付,云 Pub/Sub 中的亲和力也是 best-effort。只要该密钥当前没有未完成的消息,密钥就可以在不同的订阅者之间转移。此 best-effort 亲和力仅适用于启用排序的订阅。对于无序订阅,排序键基本上被忽略,消息被任意传递给订阅者。目前,实现亲和力的最佳方法是使用属性和 filtering,其中订阅检查相同的属性并查找不同的值。