首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌PubSub :如何定制消息分发给消费者?

谷歌PubSub :如何定制消息分发给消费者?
EN

Stack Overflow用户
提问于 2017-03-16 12:00:15
回答 1查看 3.3K关注 0票数 4

我有一个场景,我们将向pubsub发送客户数据,并与java订阅者一起使用它。我有多个订阅者订阅相同的订阅。是否有办法将同一customerID的所有消息路由到同一订户?

我知道Google有基于会话的窗口。但是,我想知道我们是否可以使用简单的java使用者来实现它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-16 19:49:38

更新过滤现在是Google /Sub中的一个可用功能。创建订阅时,可以指定查看消息属性的筛选器。如果消息与筛选器不匹配,Pub/Sub服务将自动确认消息,而不将消息传递给订阅服务器。

在这种情况下,您需要有不同的订阅,每个订阅服务器将使用来自其中一个订阅的消息。每个订阅都会设置一个筛选器来匹配客户ID。如果您知道客户ID的列表,并且它很短,您将为每个客户ID设置一个完全匹配的筛选器,例如,

代码语言:javascript
复制
attribute.customerID = "customerID1"

如果您有大量的客户If,并且希望对每个订阅者接收的If集进行分区,您可以使用前缀操作符来这样做。例如,如果if是数字,则可以使用筛选器,例如:

代码语言:javascript
复制
hasPrefix(attribute.customerID, "0")
hasPrefix(attribute.customerID, "1")
hasPrefix(attribute.customerID, "2")
hasPrefix(attribute.customerID, "3")
...
hasPrefix(attribute.customerID, "9")

先前的答案

此时,Google /Sub无法过滤传递给特定订阅者的消息。如果你事先知道你有多少订阅者,你可以自己去看。您可以创建尽可能多的主题,然后将客户ID分类为不同的主题,将消息发布到每个客户ID的正确主题上。您可以在每个主题上创建一个订阅,每个订阅者都会收到来自其中一个订阅的消息。

缺点是,如果您有任何订阅者希望获得所有客户ID的数据,那么您必须对每个主题进行额外的订阅,并且订阅者必须从所有这些订阅中获取消息。

请记住,您不希望创建超过10,000个主题,否则可能会遇到配额制

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42833496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档