会话、自动转发与分区

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

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

会话概览

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

会话概览

  • 按会话排序
    • 通过 Session ID 实现
    • 每个使用方占用一个会话
    • 消息保持顺序
  • 轻量状态用于:
    • 处理重启
    • 实现纯粹的 FIFO 队列
    • 横向扩展并发会话

Service Bus 会话

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

死信与自动转发

死信处理(Dead lettering)

  • 失败的消息
  • 释放主消息路径

自动转发(Auto-forwarding)

  • 转至单独队列或主题
  • 用于诊断流程
  • 用于重试

死信处理

自动转发

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

重复检测

  • 网络连接可能中断
    • 导致消息重发
    • 重复处理会出问题
  • 重复检测:
    • 使用唯一消息 ID
    • 配合时间窗口
    • 丢弃相同 ID 的消息
  • 每条消息仅处理一次

重复检测图

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

高吞吐的分区

Service Bus 中的分区

  • 跨多个代理分布
    • 并行处理消息
    • 提升弹性
  • 仍使用相同 API
    • Service Bus 负责分发
    • 相同连接字符串
开发 Azure 事件驱动与消息驱动解决方案

综合运用

Service Bus 总结

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

¡Vamos a practicar!

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

Preparing Video For Download...