我有一个主应用程序,允许用户编辑他们的所有数据(大约20个字段)。当这更新时,我将其添加到服务总线主题,我有系统订阅的其他区域。
其中一个订阅仅关注单个字段是否更新(电话号码)。我想知道处理这个问题的最佳方法是什么?
查看GitHub示例here,它声明:
选择复杂过滤规则的成本是订阅,主题和命名空间级别的总体消息吞吐量较低,因为评估规则会花费计算时间。应用程序应尽可能选择相关过滤器而不是类似SQL的过滤器,因为它们在处理方面效率更高,因此对吞吐量的影响更小。
因此,根据我可以收集的内容,我可以使用properties
类上的BrokeredMessage
属性添加已更新的属性,并根据该属性进行过滤,但不建议根据上述语句进行过滤。 / p>
我可以让消息通过并对其进行操作(这只会将表中的一行更新为相同的值)但这似乎是多余的。
我还有其他选择吗?
答案 0 :(得分:1)
如果您要为该订阅过滤预定义值,请使用CorrelationFiter
。如果它需要条件匹配(例如以区号321开头的电话号码),那么SqlFilter
绝对没问题。这实际上取决于您要执行多少过滤。我的建议是基准测试和测量性能,调整过滤器以获得可选结果。