设计一个通知系统

设计的系统支持不同类型消息的发送,例如push消息,sms消息和邮箱消息,能够支持千万级别的发送,保证消息推送的幂等性。系统结构图如下:
在这里插入图片描述
系统架构图中各组件作用说明:
device/setting/user info:收集到的最终信息,比如可以通过app收集

ServiceN:需要发送通知的应用服务

message template: 将消息定义和消息发送解耦,实现业务上解耦;对消息进行统一管理,统一发送消息格式。

message log:记录已经发送的消息,发送消息幂等

third party:将消息发送到用户端的云服务,一般由对应终端巨头或者统一协议制定者维护

系统设计中需要注意的点:

1、需要对单个用户发送的消息进行限流,防止对用户在短时间发送消息,导致用户直接禁止接受消息(message log)

2、根据业务场景对消息发送进行幂等(message log)3、除了考虑通知系统的承载能力,进行水平扩展,更要考虑第三方服务有限流(mq),有失败重试机制(mq),保证通知最终能够触动到用户端

4、考虑通知触达状态的监控

5、客户端进行的设置,触达系统需要维护?比如设置了拒收,设置了拒收就不发送,可以通过thrid parth取尝试获取,如果可以精确获取到,存储一份可以避免无效信息的发送,减少第三方发送消息的费用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值