Archer Han
← 全部作品

推送网关

给所有提醒找一个统一的出口,邮件、短信、IM 都走同一个接口

为什么做

服务器上有七八个地方会给你发消息:备份跑完了、证书快过期了、监控发现某个服务掉了。它们各自写各的,有的发邮件,有的发短信,配置散在各自的文件里。

结果就是有一半的通知我根本没看到,因为它们发去了我早就不看的渠道。

现在什么样

所有通知先发到这一个接口,由它决定走哪条路。加一个新渠道只需要在网关里加一次,上游的业务代码不用动。

POST /v1/messages
{
  "channel": "im",
  "to": "me",
  "body": "备份完成"
}

为什么搁了一阵

第二版想把「发失败了要知道」做出来——现在的接口只告诉你收到了,不告诉你送到了没有。要做得先给每个渠道写一套回执解析,这件事比我想的琐碎,就停在这了。