EMQ踩坑指南

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoye319/article/details/89875075

最近一段时间都在跟EMQ打交道,学习怎么使用以及其集群的搭建,这里记录一下学习过程中碰到的各种坑。。。。

一、通过源码编译EMQ的坑

1、官网给的源码地址的坑

        登录EMQ官网,无论哪个版本源码编译给的源码地址都不一样,但是你访问一下发现最后都会下载到最新版本的EMQ,并不是你想要版本的EMQ。

        因此,如果你不想使用最新版本的EMQ,那么你可以访问EMQ的gitHub地址,然后切换到不同的tag版本,并把对应的源码zip文件下载下来,解压编译即可。步骤如下图:

 

 

2、官网推荐环境的坑

       我要安装的是2.3.11版本的EMQ,官网提示我2.3+依赖于Erlang R20+版本,我就安装了Erlang R21,结果源码编译的时候编译成功了,但是用console控制台启动编译的 EMQ 程序包时,却报错,提示:

       init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})

       Crash dump is being written to: erl_crash.dump...done

       网上各种找,资料很少,也没有解决方案。最后我把Erlang R21卸载,安装了Erlang R19.3,结果一切就都可以了。

       我当时一脸黑人问号,尼玛,官网说的依赖于Erlang R20+,结果20+报错,低于20的却正常???我特么!!!!

        以下是官网截图:

 

二、使用haproxy进行负载均衡出现的坑

安装haproxy碰到的坑,安装以后启动haproxy总是失败,提示我绑定的端口冲突,错误如下:

找了好久才发现原因:我的haproxy和EMQ是放在同一个机器上的,haproxy绑定的端口跟EMQ是一样的,所以冲突了,把冲突的端口修改了即可。但是这里要注意的是,如果你的EMQ跟haproxy不是安装在同一个机器上,那么最好绑定的端口一样。 

三、Keepalived进行高可用性碰见的坑

       我是使用yum -y install keepalived安装的keepalived,系统默认生成的文件在/etc/keepalived/keepalived.cfg下,然后根据配置修改了配置文件加了自己的东西以后,启动一直失败。

       解决方案:删除keepalived.cfg,然后自己生成自己的keepalived.cfg,添加自己的东西,最后就能启动了。我猜测估计是因为系统生成的keepalived.cfg自带了它自己的东西,影响了启动。

四、解压zip文件的坑

在Linux环境下,通过tar -zxvf 命令解压文件时遇到”gzip: stdin: not in gzip format“等错误:如图所示

最终发现这个压缩包没有用gzip格式压缩,所以不用加z参数,囧(所以不是所有的解压包都得用 -zxvf)!

tar -zxvf otp_src_19.3.tar.gz 改成 tar -xvf otp_src_19.3.tar.gz即可

猜你喜欢

转载自blog.csdn.net/xiaoye319/article/details/89875075