azure - 如何在Azure服务总线中向主题的订阅添加过滤器

标签 azure azureservicebus azure-servicebus-topics

我想添加订阅过滤器,以便对不同类型的事件执行不同的操作。

如何向其添加过滤器。 是否应该在发送到主题之前添加 或者可以在 azure 门户中完成?

最佳答案

可以在 Azure 门户中为特定订阅添加过滤器,也可以在从编码端发送时添加过滤器。

这里我分享一下从Azure Portal添加过滤器的方法

示例:在下面的代码中,我向名为“apptopic”的主题发送消息

for(int i=0;i<5;i++)
{
  Order obj = new Order();
  var _message = new Message(Encoding.UTF8.GetBytes(obj.ToString()));
  _message.MessageId = $"{i}";
  _message.UserProperties.Add("Category", Exams[i]);           
  await _client.SendAsync(_message);
  Console.WriteLine($"Sending Message : {obj.Id} ");
}

此主题已被三个订阅订阅A订阅B订阅C订阅。

所以我想向 SubscriptionC 添加一个过滤器,以便在 MessageId 为 1 时接收消息。

因此,转到您想要添加过滤器的特定订阅。然后删除屏幕截图中突出显示的默认过滤器。 enter image description here .

然后单击“添加过滤器”,提供屏幕截图中提到的过滤器名称和过滤条件,然后保存更改。 enter image description here .

在此过程中订阅,

  1. 订阅 A 将收到 - 5 条消息
  2. 订阅 B 将收到 - 5 条消息
  3. 订阅 C 将收到 - 1 条消息(由于添加了过滤器)

关于azure - 如何在Azure服务总线中向主题的订阅添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51039545/

相关文章:

sql - 将 .bacpac 从一个 Azure SQL Server 还原到另一个 Azure SQL Server 后,包含的用户密码和登录用户密码不起作用

c# - 阅读服务总线主题订阅死信队列 (DLQ) C# 的最佳方式

Azure 服务总线和长处理消息

azure - 推送通知 Azure 移动服务(自托管)

java - 了解与 Azure Groovy Java 一起使用的长轮询客户端逻辑

javascript - 此 api 版本不支持 onedrive 文件选择器 aadsts70001 应用程序

azure - 相当于 Azure.Messaging.ServiceBus SDK 中的 "UserProperties"属性

c# - 在 Azure 中从哪里获取 IssuerName 和 IssuerKey

c# - 操作未在分配的超时 00 :01:00 内完成