📌  相关文章
📜  Microsoft Azure – 使用 Azure 服务总线队列(1)

📅  最后修改于: 2023-12-03 14:44:16.658000             🧑  作者: Mango

Microsoft Azure – 使用 Azure 服务总线队列

Azure 服务总线队列是一种基于云的消息传递服务,可将不同组件和应用程序之间的异步通信解耦,从而加强可靠性和可伸缩性。服务总线队列利用发布/订阅模型,为发送者和接收者之间的一个枢纽。发送方将消息发送到队列,接收方则从队列中接收消息。

创建服务总线命名空间

在开始使用服务总线队列之前,需要创建一个服务总线命名空间。要创建服务总线命名空间,您需要进行以下步骤:

  1. 登录到 Azure 门户并选择“创建资源”。
  2. 在搜索列表中输入“服务总线命名空间”并选择“服务总线命名空间”选项。
  3. 在服务总线命名空间工作区中,输入名称并选择区域。
  4. 选择标定价层,位置位于“基本”到“标准”之间,根据个人或团队需求选择。
  5. 在“网络基础设置”下,选择公共或 VNet。
  6. 在“标记”下,可选添加标记。
  7. 最后,选择“创建”。
创建服务总线队列

创建服务总线命名空间后,需要创建服务总线队列。队列可以使用 Azure 门户或 Azure PowerShell 创建。以下是使用 Azure 门户创建服务总线队列的步骤:

  1. 在服务总线命名空间界面中,选择“+ 添加队列”。
  2. 在“添加队列”对话框中,输入队列名称并选择“创建”。队列名称应具有全局唯一性。
  3. 如需进行更改,可以使用“队列配置”选项卡更新消息到达时间限制、默认 TTL、队列大小限制以及重试策略。
发送消息到队列

可以使用以下步骤将消息发送到服务总线队列:

  1. 创建一个 Azure 服务总线命名空间客户端,然后使用客户端创建队列。
  2. 使用 QueueClient 对象中的“SendAsync”方法将消息发送到队列,如下所示:
string connectionString = "Endpoint=sb://[yournamespace].servicebus.chinacloudapi.cn/;SharedAccessKeyName=[youraccesskeyname];SharedAccessKey=[youraccesskey]";
string queueName = "myqueue";
MessagingFactory messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);
QueueClient queueClient = messagingFactory.CreateQueueClient(queueName);
BrokeredMessage message = new BrokeredMessage("Hello, Azure Service Bus!");
await queueClient.SendAsync(message);
从队列接收消息

可以使用以下步骤从服务总线队列接收消息:

  1. 使用 QueueClient 对象创建消息处理程序。
  2. 从启动的服务总线队列中获取消息并在队列上注册消息处理程序。
  3. 将消息传递给处理程序以进行后续处理。

以下代码显示如何接收队列中的消息:

string connectionString = "Endpoint=sb://[yournamespace].servicebus.chinacloudapi.cn/;SharedAccessKeyName=[youraccesskeyname];SharedAccessKey=[youraccesskey]";
string queueName = "myqueue";
MessagingFactory messagingFactory = MessagingFactory.CreateFromConnectionString(connectionString);
QueueClient queueClient = messagingFactory.CreateQueueClient(queueName);
MessageReceiver messageReceiver = queueClient.CreateReceiver();
BrokeredMessage message = await messageReceiver.ReceiveAsync();
Console.WriteLine("Received message: {0}", message.GetBody<string>());
结论

Azure 服务总线队列为程序员提供了快速、可靠和可伸缩的异步通信机制。本文介绍了如何创建服务总线命名空间和队列、如何发送消息到队列以及从队列接收消息。Azure 服务总线队列是 Azure 平台的强大功能之一,值得程序员们探索和利用。