[005]MPUSH消息推送系统开发教程第5篇-架构图以及部署方案

MPUSH开源推送系统官网[https://mpusher.github.io]

一、MPush架构图

[005]MPUSH消息推送系统开发教程第5篇-架构图以及部署方案

二、部署方案

    从上往下,分三大块:

    1、业务推送系统

        开发工作比较大一点,需要引入服务端SDK(Mpush client),调用api进行消息发送,消息到达服务端,发送到客户端。

        业务推送系统可以这样设计:

  • 对外提供api给业务系统调用,业务系统调用之后,把消息先入库;
  • 从数据库批量读取消息到队列(称为消息队列,下文用到),消息队列设计高低水位,低于低水位时从数据拉取消息到队列,高于高水位时,睡眠N秒。
  • 多线程消费队列,调用消息发送接口发送消息,发送结果更新到数据库。
  • 发送不成功的消息,重试三次,如果还是失败则记录发送失败。更新到数据库。
  • 如果担心高并发、大数据,MPUSH服务端会负荷过大,导致发送失败的话,可以从消息队列限流,设置N个线程消费的,可以减少消费线程个数。
  • 发送失败的消息,根据需要是放弃还是重发,如果是重发,可以从数据库读取出来,放在一个失败队列里面,开多线程消费此队列,进行重新发送消息。

    2、Mpush服务端

        是Mpush消息推送系统的框架,是现成的,不用开发,可适当维护。

    3、客户端

        引入客户端SDK,发起建立连接,绑定用户。(开发量不大)


三、总结

    个人观点,Mpush可以应用到商业系统,先引入一些业务,把业务支撑起来,后续可以把公司全部消息推送引入到MPush上面来。