[003]MPUSH消息推送系统开发教程第3篇-个性化推送中心(mpns)源码启动报错及解决方案

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

        背景

        MPNS是我们的业务推送系统,负责消息推送,长链接的检查,离线消息存储,用户打标等。是消息推送系统关键的一环,与业务系统密切相关。

业务推送系统依赖服务端SDK(mpush-client),调用发送接口,返回发送结果,对发送失败的消息进行离线保存,连接DB(MySQL)保存消息记录。

所以很有必要了解熟悉MPNS。

        官网:https://github.com/mpusher/mpns

        一、报错信息

        按照官网的说明,源码启动,报错如下:

        [003]MPUSH消息推送系统开发教程第3篇-个性化推送中心(mpns)源码启动报错及解决方案

        二、排查原因

         看了一篇文章 log4j-over-slf4j与slf4j-log4j12共存stack overflow异常分析 , 然后看看Maven Dependencies,发现果然有log4j-over-slf4j-1.7.25.jar和slf4j-log4j12-1.7.7.jar。

        1、日志体系

        [003]MPUSH消息推送系统开发教程第3篇-个性化推送中心(mpns)源码启动报错及解决方案

         了解simle logging facade for java (slf4j) 和 commons-logging (jcl)都是日志门面接口。

         在pom.xml文件屏蔽日志框架(具体实现)logback-classic,再次启动,启动成功:

        信息: Succeeded in deploying verticle