推送环境搭建基于开源MPush

       最近一直写接口需要调节下,刚好也不是很紧急。突然想搞搞推送,以前用的极光跟LeanCloud都是收费的,现在项看看开源的,不收费的,如果可行,可以二次开发。于是中午吃完饭开着翻墙百度谷歌一番,就找到MPush,评论说文档跟代码质量还比较高。大概2年前停止更新了,源码最新也就出到0.8.0了,不过觉得这些偶读不影响,有基本的推送能力基本就是后面跟业务融合了。

一、版本说明与环境搭建

       我这里找到的最新的别人编译后的版本就是0.7.1,主要是验证可行性更效果,所以不用去下载开源的最新代码编译。也没有那个必要,就算最新的代码下载下来了,短时间也改不了啥。不是妄自菲薄,确实代码修改比自己写要求还高些,毕竟要改的前提是能先看懂别人写的。

       环境搭建其实按照开源写的文档基本就可以搭建成功了,这里我也不多说了,给个整体参考地址大家吧。说的配置都是默认的,啥都不用改,一会我就跟大家说说我遇到的坑就行了。

参考地址:https://github.com/mywiki/mpush-doc/blob/master/SUMMARY.md

基本步骤:JDK(1.8+)-->Redis(3.0+)-->Zookeeper(3.2+)-->MPush(mpush-release-0.7.1.tar.gz)-->MPushAlloc(alloc-release-0.7.1.tar.gz)

我这里Mpush用的是0.7.1,注意要与Alloc版本一致哦。

二、优化启动

        MPush的几个组件启动都没有写批处理命令,除了zk。启动都是要进bin目录,同时引用conf下的配置文件启动,跟redis的启动类似。所以我就直接写了几个批处理,其实非常简单。就是新建一个txt文档,把文件扩展名txt改为bat。然后把你在黑框框里说的命令按照一行一个的顺序写在里面保存,要启动就双击就可以了。例如:

我这里把mpush需要的组件全部放在这个目录,方便管理。下面的startXXX.bat就是我建的批处理,zk自己有写好的,所以我复制一个快捷方式放这里。

命令的例如:

这里还说一点就是目录不要有空格,不然报错。

启动顺序跟安装顺序一致。

三、坑点

      a.域名与端口问题

         我这里是直接搭在外网阿里云服务器上的,域名使用的是二级域名。端口映射用的是Apache,这个的配置其实很简单,就是找到httpd-vhosts.conf文件,增加一个域名与端口的映射关系:

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
#    #DocumentRoot "${SRVROOT}/docs/你的二级域名"
    ServerName 你的二级域名(不带http://)
    ProxyPass /  http://localhost:9999/
    ProxyPassReverse /  http://localhost:9999/
    ErrorLog "D:/application/log/你的二级域名-error.log"
    CustomLog "D:/application/log/你的二级域名-access.log" common
</VirtualHost>

ProxyPass和ProxyPassReverse就是配置的localhost你懂的,9999是MPush的Alloc的端口号。

特别说明阿里云需要对你的二级域名进行添加哦,否则还是没有用的。之前就是只配置了9999的入端口规则,然后一直就是通过域名不能访问,通过ip:端口倒是可以访问,看着ip端口不爽。所以让老大把二级域名配置,端口入规则配置。

      b.redis的密码设置

       我这里是先前我就装了redis的,然后redis我设置密码了的。参考文档里说MPush/Alloc的配置都不需要改,后来我才记起来。它们修改密码都是修改mpush.conf文件,mp.redis的节点里增加password:"你的redis密码"。注意你的redis密码一定要用双引号包裹。

      c.安卓测试start获取到的是服务器的内外IP

      下载安装测试的apk安装后,安装我们直接环境设置二级域名,点击BIND,再点击START后,log区域打印的日志,get server address success result=xxxxxxx:3000

我这里得到的ip跟服务器ip对不上,仔细一看,发现这个ip是阿里云服务器的内外IP。所以我继续看MPush的配置文件,在MPush的配置文件mpush.conf里看到有局域网ip和公网ip映射的注释,所以果断的配置上:

前面是局域网ip,后面是公网ip

    d.填平了abc的坑后,依然发现安卓测试的log在不停重连(这里的英文应该能懂)

       其实MPush还有一个接入服务的端口号没有在阿里云里面配置。从坑点c的截图上应该可以看到,没错就是3000。于是又让老大配置了3000的入端口规则。

我这里基本上处理了上面的abcd四个坑后,久违的测试界面就正常了,能正常收发了。

四、测试效果

这里自己发个自己

网页的的测试地址就是9999端口后面加/index.html

五、总结

     1、测试证明开源的可行,而且我这边测试的速度还蛮快。

     2、这个开源的开的很透彻,不像有些就看到部分代码。后期二次开发easy

     3、从组件上看支持redis的集群/zk的集群

     最最重要的一点就是,目前立马就可以开发使用。提供的终端的SDK,支持的平台基本都够用了,后期完全可以二次开发,甚至商业化。当然我个人还是希望开源的,就算又优化版本,也希望大家分享。其实算算也就需要一个服务器、域名的成本。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥仔哥哥1930

来一波支持,吃不了亏上不了当

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值