如何通过SEMPv2为Solace队列添加消息选择器?
通过SEMPv2为Solace队列添加消息选择器的正确方法
你遇到的错误是因为队列资源本身并不包含selector字段,直接PATCH队列接口自然会返回参数无效的错误。在Solace中,队列的消息选择器是绑定到**队列的订阅(Subscription)**上的,需要通过操作队列的订阅资源来实现。
具体操作步骤:
- 使用POST请求创建带选择器的队列订阅,目标端点:
http://localhost:8080/SEMP/v2/config/msgVpns/default/queues/QUEUENAME/subscriptions - 请求体需要包含两个核心字段:
subscriptionTopic:指定订阅的主题范围,若要过滤所有主题下符合选择器的消息,可设为通配符>;若有特定主题范围,填写对应主题即可。selector:你的消息过滤规则,格式与你之前尝试的一致。
示例请求体:
{ "subscriptionTopic": ">", "selector": "platforms LIKE '%standvirtual%'" }
修改已有订阅的选择器:
如果需要调整已存在的订阅选择器,可先通过GET请求获取该队列的所有订阅(端点同上,用GET方法),找到目标订阅的subscriptionId后,使用PATCH请求更新:
http://localhost:8080/SEMP/v2/config/msgVpns/default/queues/QUEUENAME/subscriptions/{subscriptionId}
请求体只需传入修改后的selector字段即可。
内容的提问来源于stack exchange,提问作者João Reis
相关产品推荐
相关产品推荐

