Azure Service Bus 简介

开发 Azure 事件驱动与消息驱动解决方案

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

Queue Storage 与 Service Bus 对比

Queue Storage

  • 简单"待办"列表
  • 无高级功能
  • 每条消息处理一次

Service Bus

  • 企业级消息中间件
  • 更强的投递保证
  • 更丰富的路由
  • 协调能力
  • 可有多个使用方

Queue Storage

Service Bus

开发 Azure 事件驱动与消息驱动解决方案

Service Bus 队列

  • 点对点:
    • 生产者发送后
    • 由一个使用方接收
    • 消息处理一次
  • 类似 Queue Storage 的工作方式

Service Bus 标志

开发 Azure 事件驱动与消息驱动解决方案

Service Bus 主题

  • 发布-订阅模型
    • 多个生产者发送消息
    • 多个使用方可接收同一消息
  • 订阅可筛选消息:
    • 各订阅仅接收相关内容
  • 队列像单一收件箱
  • 主题像邮件列表

Service Bus 主题

开发 Azure 事件驱动与消息驱动解决方案

消息可靠性

  • 内置可靠性:
    • 故障将被
    • 自动重试
  • 死信队列:
    • 专用于失败消息
    • 可检查消息

消息可靠性

开发 Azure 事件驱动与消息驱动解决方案

重复检测

  • 通过重复检测防止消息被处理两次。

  • 若发送方重试导致同一消息再次到达,将按其消息 ID检测。

  • 在配置的时间窗口内,重复项会被丢弃

  • 即使存在网络重试,也有助于实现近似一次处理

Service Bus 重复检测

开发 Azure 事件驱动与消息驱动解决方案

有序处理

Service Bus 会话

  • Service Bus 会话支持有序处理。

  • 相关消息共享会话 ID(如同一订单的所有更新)。

  • 每次仅将一个会话交付给一个使用方

  • 会话内保持顺序,使用方可保留轻量状态。

  • 并行处理多个会话,且各自有序。

开发 Azure 事件驱动与消息驱动解决方案

开始练习吧!

开发 Azure 事件驱动与消息驱动解决方案

Preparing Video For Download...