Skip to content
站长自营API 中转

国内开发者可试试 ZZSwitch

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

站长自营API 中转

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

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

使用 TypeScript 实现 Azure Service Bus 企业级消息队列

解决复杂系统中的组件解耦问题:通过 TypeScript SDK 实现对 Azure Service Bus 队列(Queue)和主题(Topic)的精准控制,支持异步消息传递、延迟调度及死信队列处理。

为什么需要这个技能

在构建微服务或分布式系统时,同步的 HTTP 调用容易导致级联失效。企业需要一种可靠的异步通信机制来处理高并发请求、保证最终一致性以及实现任务削峰填谷。

Azure Service Bus 提供了比简单队列更强大的功能,如消息会话(Sessions)保证顺序、主题订阅实现发布/订阅模式,以及死信队列(DLQ)确保异常消息可追溯。掌握该 SDK 能让开发者快速构建具有金融级可靠性的消息流转体系。

适用场景

  • 异步任务处理:如订单创建后的邮件发送、报表生成等耗时操作。
  • 事件驱动架构:利用 Topic 和 Subscription 将一个事件分发给多个不同的微服务。
  • 顺序消息处理:使用 Session 确保同一用户的操作请求按顺序执行。
  • 错误容忍与恢复:通过死信队列处理无法解析或处理失败的异常消息。

核心工作流

1. 环境准备与认证

安装依赖并使用 DefaultAzureCredential 实现无密钥认证,避免在代码中硬编码连接字符串。

bash
npm install @azure/service-bus @azure/identity
typescript
import { ServiceBusClient } from "@azure/service-bus";
import { DefaultAzureCredential } from "@azure/identity";

const fullyQualifiedNamespace = process.env.SERVICEBUS_NAMESPACE!;
const client = new ServiceBusClient(fullyQualifiedNamespace, new DefaultAzureCredential());

2. 消息发送与接收

支持单条发送、批量发送以及基于事件的实时订阅。

typescript
// 发送消息
const sender = client.createSender("my-queue");
await sender.sendMessages({ body: { orderId: "12345" } });

// 订阅处理(事件驱动)
const receiver = client.createReceiver("my-queue");
receiver.subscribe({
  processMessage: async (message) => {
    console.log(`Processing: ${message.body}`);
  },
  processError: async (args) => {
    console.error(`Error: ${args.error}`);
  },
});

3. 高级特性应用

  • 死信处理:当消息无法处理时,将其移至 deadLetter 队列,防止阻塞主队列。
  • 延迟调度:使用 scheduleMessages 设置消息在未来某个时间点可见。
  • 会话管理:通过 acceptSession 锁定特定会话 ID 的消息流。

下载和安装

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

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

你可能还需要

暂无推荐

站长自营API 中转

ZZSwitch API 中转

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