通知系统 (SNS - Simple Notification System)

通知系统SNS核心分为三部分,主题(Topic),平台(Application Platform),接收端(Application Endpoint)

  • 主题(Topic):用于接收信息的通道。例如ZWatch可以将报警消息发送到某个主题,由主题分发给订阅的接收端。
  • 平台(Application Platform):某些接收端需要通过平台发送信息,例如邮件接收端需要邮件服务器发送邮件,邮件服务器就被抽象成平台。目前只有邮件服务器和系统平台两种平台。系统平台用于给不需要平台的接收端(如钉钉和HTTP HOOK)发送信息
  • 接收端(Application Endpoint):用于接收信息的终端,目前包含邮箱/钉钉机器人/HTTP HOOK三种。接收端只有订阅了主题后,才能接收到发送到该主题的信息。
Note: 主题跟接收端是多对多关系,一个主题可以被多个接收端订阅,一个接收端也可以订阅多个主题

当外部系统(如ZWatch)发送信息到主题后,主题会查找所有订阅该主题的接收端,然后通过该接收端所属的平台将信息发送出去。例如某个邮件接收端(邮箱地址)订阅了某个报警主题,当该报警主题接收到一条报警信息后,会通过该邮件接收端所属的平台(邮件服务器),发送报警邮件到该接收端代表的邮箱地址。

使用流程

通常的使用流程是:
  1. 用户创建一个主题,用于接收外部系统(如ZWatch)发来的信息
  2. 如果要使用邮件接收端,则先创建一个平台(邮件服务器)
  3. 创建接收端,并订阅步骤1中的主题