← 全部作品
推送网关
给所有提醒找一个统一的出口,邮件、短信、IM 都走同一个接口
为什么做
服务器上有七八个地方会给你发消息:备份跑完了、证书快过期了、监控发现某个服务掉了。它们各自写各的,有的发邮件,有的发短信,配置散在各自的文件里。
结果就是有一半的通知我根本没看到,因为它们发去了我早就不看的渠道。
现在什么样
所有通知先发到这一个接口,由它决定走哪条路。加一个新渠道只需要在网关里加一次,上游的业务代码不用动。
POST /v1/messages
{
"channel": "im",
"to": "me",
"body": "备份完成"
}
为什么搁了一阵
第二版想把「发失败了要知道」做出来——现在的接口只告诉你收到了,不告诉你送到了没有。要做得先给每个渠道写一套回执解析,这件事比我想的琐碎,就停在这了。