当前位置: 首页 > 知识库问答 >
问题:

基于属性或消息内容的Google Pubsub订阅

温成济
2023-03-14

我对GCP平台比较陌生。我有一个在pubsub主题中发布消息的系统。消息有一个名为country的属性,根据该属性,不同的客户端希望订阅消息。客户端X只对国家a的消息感兴趣。客户端Y只对国家b的消息感兴趣。

我是否必须在google pub sub中为每个国家/地区创建主题?或者有一种聪明的方法可以根据属性值订阅单个主题

我指的是发布者传递的属性,如谷歌文档中所述。https://cloud.google.com/pubsub/docs/publisher

谢谢

共有2个答案

阮喜
2023-03-14

如果你想进行订阅过滤,请在云发布/订阅想法论坛上投票!https://googlecloudplatform.uservoice.com/forums/302631-cloud-pub-sub

鲁望
2023-03-14

2020年6月更新:过滤现在是谷歌云发布/订阅中可用的功能。创建订阅时,可以指定查看消息属性的过滤器。如果消息与筛选器不匹配,发布/订阅服务将自动确认消息,而不将其交付给订阅者。

在这种特定情况下,您可以创建一个主题和两个不同的订阅,一个用于获取国家a的消息,一个用于获取国家b的消息。每个订阅的过滤器将是:

attributes.country = a
attributes.country = b

上一个答案:

您正在讨论的功能称为过滤:您希望订阅能够指定它希望根据消息中提供的属性接收消息的子集。目前,谷歌云发布/订阅中不存在该功能。

现在有两种方法可以解决这个问题:

  1. 通过查看属性并立即确认订阅者不感兴趣的所有消息,过滤订阅者中的消息。这意味着您将支付向每个订阅者交付所有消息的费用,根据订阅者实际感兴趣的消息的百分比,这些消息可能并不理想

我们正在探索添加功能的方法,这将使这个用例在未来变得更容易。

 类似资料:
  • 我的任务用例:现在的用例是,我在一个表单中填写名字、姓氏等细节,然后单击Submit按钮,数据直接进入Amazon SQS,然后定义了一个包含按钮的侦听器,单击该按钮,数据从侦听器进入MSSQL数据库。 场景(当前):现在,所有属于不同消息属性的消息都将被发送。 要求:我要发送属于特定消息属性的特定消息。例如:假设A类、B类和C类是三个不同的消息属性,A类包含一个消息,B类包含两个消息,C类包含四

  • 我们在基于服务的应用程序中使用作为一种事件总线。send方法和消息处理程序基于spring-messaging的类(从Spring-Integration4.0(+)开始)。事件是对实体的更改,需要由其他服务接收。 问题是:spring-messaging类被spring-amqp视为任意对象负载,因为它不被识别为spring-amqp。这会导致以下问题: 默认消息格式是序列化的Java对象。sp

  • AWS、SNS和SQS的文档有关于消息属性的部分。但是没有解释当队列被订阅到SNS主题时如何具有SQS消息属性。 是否有一种方法可以配置AWS SNS,将特定的消息属性添加到通过订阅发送的SQS消息中?

  • 微信文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.addTemplate.html 组合模板并添加至帐号下的个人模板库 $tid = 563; // 模板标题 id,可通过接口获取,也可登录小程序后台查看获取 $kidLi

  • 开普勒消息目前分为三大类:公告,告警和通知。 通知中根据不同的操作事件类型,分为十几个事件。每个事件都跟项目操作相关。便于接收项目操作变更的通知。 分类 事件 公告 Alarm 告警 Proclaim 通知 Build,Apply,Audit,Delete,Rollback,Logging,Reboot,Command,Storage,Extend... 订阅界面: 用户中心,点击头像,下拉菜单→

  • 我正在使用JavaFX属性的模型实体consitiing witch允许我更改单个位置上的值,将它们绑定到UI,并在模型实体数组中添加带有额外条件的更改的监听器(惟一值等)。 我必须将模型存储在数据库中,所以问题如下: 注意:一些可绑定属性根本不必持久化。