Azure 服务总线中 SQL 筛选器和相关筛选器之间的主要区别是什么

What is the main difference between SQL filter and correlation filter in Azure Service Bus

如 MSDN 中所述 (https://docs.microsoft.com/en-us/azure/service-bus-messaging/topic-filters) SQL 过滤器和关联过滤器都使用消息的系统定义和用户定义的属性。

能举个例子说明两者的区别吗?

我有一个 blog post,其中解释了所有三种过滤器类型

  1. 布尔过滤器
  2. 相关过滤器
  3. SQL 过滤器

相关过滤器和 SQL 过滤器之间存在一些差异。仅举几例

  • 相关过滤器旨在对一些系统属性进行操作,例如 ContentTypeMessageIdReplyToReplyToSessionIdSessionIdTo,和 CorrelationId。 SQL 过滤器不仅限于系统属性,还可以在 user/applicaiton properties/headers.
  • 上运行
  • 在相关过滤器中,多个条件是 AND-ed。 SQL 过滤器更加灵活,可以使用 AND 以及 OR 运算。
  • 评估过滤器表达式的成本很小,而且几乎立即 w/o 需要额外的计算。 SQL 过滤器可能需要更多计算,但提供更多灵活性。