EMQ踩坑指南

博主记录了学习使用EMQ及搭建其集群过程中遇到的问题。包括源码编译时官网源码地址和推荐环境的坑,使用haproxy负载均衡、Keepalived高可用配置时启动失败的问题,以及Linux环境下解压文件的错误,还给出了相应解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一段时间都在跟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即可

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值