Skip to content
站长自营API 中转

国内开发者可试试 ZZSwitch

统一 Base URL、Key 和余额,适合 OpenCode / Claude Code / Codex 等工具接入。

站长自营API 中转

正在比较模型套餐?可以把多个 AI API 接到一个网关里

ZZSwitch 是我自己运营的统一 API 网关,适合需要国内支付、兑换码充值、多模型切换和 OpenAI 兼容接口的开发者。不是 OpenCode 官方服务。

如何在 .NET 中使用 Azure Service Bus 构建企业级消息队列

本技能旨在指导开发者使用 .NET SDK 构建高性能、高可靠的企业级消息传递系统,涵盖从基础的消息发送接收到复杂的主题订阅、会话处理及死信队列管理。

为什么需要这个技能

在构建分布式系统或微服务架构时,直接同步调用会导致系统耦合度高且缺乏弹性。Azure Service Bus 提供了强大的异步通信能力,能够通过队列(Queue)实现点对点通信,通过主题(Topic)实现发布/订阅模式。

掌握该 SDK 可以让开发者实现削峰填谷、异步解耦以及确保消息在极端情况下的可靠交付,而无需自行维护复杂的 Broker 集群。

适用场景

  • 异步解耦:将耗时操作(如发送邮件、生成报表)移至后台处理。
  • 负载均衡:通过队列在多个消费者之间分配任务。
  • 广播通知:利用 Topic 和 Subscription 将一条消息分发给多个不同的微服务。
  • 顺序保证:通过 Session(会话)确保特定订单或用户的消息按发送顺序处理。
  • 错误容忍:利用死信队列(DLQ)隔离无法处理的异常消息以便后续分析。

核心工作流

1. 环境配置与初始化

首先安装核心包并配置身份验证。推荐使用 DefaultAzureCredential 以避免在代码中硬编码密钥。

bash
dotnet add package Azure.Messaging.ServiceBus
dotnet add package Azure.Identity
csharp
using Azure.Identity;
using Azure.Messaging.ServiceBus;

string fullyQualifiedNamespace = "<namespace>.servicebus.windows.net";
await using ServiceBusClient client = new(fullyQualifiedNamespace, new DefaultAzureCredential());

2. 发送与接收消息

发送时推荐使用 ServiceBusMessageBatch 进行批量操作以提升吞吐量。

csharp
// 发送消息
ServiceBusSender sender = client.CreateSender("my-queue");
using ServiceBusMessageBatch batch = await sender.CreateMessageBatchAsync();
batch.TryAddMessage(new ServiceBusMessage("Hello World"));
await sender.SendMessagesAsync(batch);

// 接收并结算消息
ServiceBusReceiver receiver = client.CreateReceiver("my-queue");
ServiceBusReceivedMessage message = await receiver.ReceiveMessageAsync();
await receiver.CompleteMessageAsync(message); // 确认处理完成,从队列删除

3. 后台自动化处理

对于需要常驻监听的任务,使用 ServiceBusProcessor 能够自动处理锁续期和并发调用。

csharp
ServiceBusProcessor processor = client.CreateProcessor("my-queue", new ServiceBusProcessorOptions
{
    AutoCompleteMessages = false,
    MaxConcurrentCalls = 2
});

processor.ProcessMessageAsync += async (args) =>
{
    Console.WriteLine($"Received: {args.Message.Body}");
    await args.CompleteMessageAsync(args.Message);
};
await processor.StartProcessingAsync();

4. 进阶管理

利用 ServiceBusAdministrationClient 可以在代码中动态创建或更新队列、主题及其属性。

下载和安装

下载 azure-servicebus-dotnet 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐

站长自营API 中转

ZZSwitch API 中转

统一接入多家模型,支持兑换码充值。