Azure Service Bus Subscription过滤器失效:含连字符属性问题咨询
Azure Service Bus订阅过滤含连字符属性失败/不生效的原因
语法解析冲突:Azure Service Bus的SQL过滤规则采用类SQL语法,属性名中的连字符
-会被引擎解析为算术减号,而非属性名的一部分。例如编写event-type = 'xxx'时,引擎会误判为event - type = 'xxx',尝试执行减法运算,直接导致订阅创建失败或过滤逻辑失效。未正确转义属性名:包含特殊字符(如连字符、空格)的自定义属性,在过滤规则中必须用双引号包裹属性名。正确写法应为
"event-type" = 'order-created',若未添加双引号,要么触发语法错误导致订阅创建失败,要么过滤器无法识别目标属性,进而无法匹配消息。属性大小写不匹配:Azure Service Bus的自定义属性名区分大小写,若发送消息时属性名是
event-type,但过滤规则中写成Event-Type或EVENT-TYPE,会导致无法匹配,表现为过滤器不生效。属性类型不匹配:如果过滤规则中使用的数据类型与消息属性实际类型不一致,也会导致过滤失效。比如消息的
event-sub-type是数值1,但过滤规则写"event-sub-type" = '1',就会因类型不匹配无法匹配到消息。
内容的提问来源于stack exchange,提问作者Vishal Sharma
相关产品推荐
相关产品推荐

