自定义主题、过滤和重试

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

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

学习目标

  • Event Grid 域
  • 高级过滤
  • 死信机制
    • 调整重试行为

Event Grid 域

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

Event Grid 域

Event Grid 域

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

域 vs 自定义主题

  • 管理多个隔离的主题
  • 可跨多个:
    • 应用
    • 团队
    • 租户
  • 保持客户相互隔离

自定义主题

  • 独立主题
  • 单一发布者场景
  • 面向少量消费者

Event Grid 域

Event Grid 主题

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

高级过滤

  • 通过过滤器仅投递订阅者关心的事件。

  • 主题前缀/后缀过滤适用于类路径主题。

    • 例如,/sales/.jpg
  • 也可按事件类型过滤。

  • 高级过滤支持大于、小于、包含等比较。

  • 多个过滤以逻辑 AND 组合,精确控制。

高级过滤

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

Event Grid 的死信机制

  • Event Grid 支持死信作为安全网。

  • 若在全部重试后仍投递失败,事件不会丢失。

  • 未投递事件会写入死信存储容器

  • 失败上下文会保存以便检查与审计

  • 可通过恢复流程稍后重放事件。

Event Grid 死信

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

重试与退避

  • Event Grid 重试采用指数退避

  • 重试间隔在每次失败后增加。

  • 每个事件订阅都有可配置的重试策略

  • 可调整最大投递次数生存时间 (TTL)

  • 根据延迟或丢失事件的影响选择重试设置。

指数退避

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

投递保证

投递保证

  • Event Grid 提供至少一次投递

  • 可能出现重复,且不保证全局顺序

  • 这些保证适用于系统事件和自定义事件

  • 区别在于发布者归属

  • 系统事件由 Azure 发布事实。

  • 自定义事件由您发布事实,需自行处理去重

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

Passons à la pratique !

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

Preparing Video For Download...