使用 Azure Storage Queues

面向 Azure Storage 的开发

Shahzad Mian

Content Developer, DataCamp

存储队列简介

  • Storage queues 是消息队列服务。
  • 应用常需同时处理大量请求。
  • 逐个等待会拖慢系统。
  • Azure Storage Queues 实现组件间的异步通信。
  • 异步消息保持速度与可伸缩性。

存储队列问题求解

面向 Azure Storage 的开发

真实世界的挑战

订单堆积的问题与解决方案

  • Cipher Coffee 网店同时收到数百个订单。
  • 没有队列时,每个订单必须等待前一个完成。
  • 队列可先即时接单,稍后再处理。
  • 使网站更快,客户更满意。
面向 Azure Storage 的开发

什么是队列?

  • 队列是待处理消息的"等待队"。
  • 消息按顺序处理:先进先出(FIFO)。
  • 每条消息代表一个小工作单元。
  • 处理完成后从队列中删除。

队列图示

面向 Azure Storage 的开发

Azure Storage Queues 的工作方式

队列示意

  • Azure Storage Queues 属于您的存储帐户。
  • 消息最大 64 KB,持久存储。
  • 应用可以:
    • 发送消息到队列。
    • 接收并处理消息。
    • 完成后删除消息。
  • 系统重启后消息仍会保留。
面向 Azure Storage 的开发

异步工作流

 

 

异步工作流

  • 发送方向队列加入消息,如"为 Order 2045 处理付款"。
  • 后台服务(如 Azure Function)检索消息。
  • 处理成功后删除消息。
  • 此模式在高负载下保持可伸缩与响应性。
面向 Azure Storage 的开发

Cipher Coffee 实战

  • Cipher Coffee 网站将订单消息发送到队列。
  • 订单履约系统从队列读取消息。
  • 消息触发对数据库与支付系统的更新。
  • 通知咖啡师,同时不影响用户结账速度。

订单流程

面向 Azure Storage 的开发

队列的优势

  • 解除耦合:系统独立运行。
  • 可伸缩性:增加工作器以更快处理消息。
  • 可靠性:停机期间消息仍会保留。
  • 集成性:可与 Azure Functions、Logic Apps 协同。

独立系统

可伸缩系统

可靠系统

Screenshot 2025-10-27 at 5.42.20 pm.png

面向 Azure Storage 的开发

消息生命周期

Screenshot 2025-10-27 at 5.48.34 pm.png

  • 消息经历三个主要阶段:
    • 入队:将消息加入队列。
    • 出队:工作器取出处理。
    • 删除:处理成功后移除。
  • 失败消息会自动重新出现以重试。
面向 Azure Storage 的开发

常见用例

  • 订单处理与后台计费。

订单图标

  • 发送通知邮件。

邮件图标

  • IoT 遥测缓冲。

IoT 图标

  • 日志采集与事件管道。
    • 使用队列实现独立、可重试的操作。
    • 还有更多
面向 Azure Storage 的开发

Queues 与 Service Bus 对比

  • Azure Service Bus 用于高级消息场景。
  • Service Bus 支持:
    • 消息排序与会话。
    • 事务与主题/订阅。
  • Azure Storage Queues 更简单,轻量场景性价比更高。
  • Cipher Coffee 使用队列进行订单处理与实时更新。

Screenshot 2025-10-27 at 6.13.37 pm.png

面向 Azure Storage 的开发

Vamos praticar!

面向 Azure Storage 的开发

Preparing Video For Download...