本文主要记录一次WIN10环境下的erlang+rabbitmq的安装(2018.10)。
rabbitMq和activemq不同,它不是专为Java设计的,所以java中要用它需要配置erlang环境。
Erlang/OTP versions older than 19.3 and newer than 20.3.x (including 21.0) are not supported,意思是erlang的19.3(8.3)-20.3(9.3)支持rabbitmq,其他版本不支持。
第一步:安装erlang
安装otp_win64_19.3.exe(我这个是19.3的,20.0和20.1的也装过)
安装成功之后看一下环境变量ERLANG_HOME是否自动生成,没有的话把他加上,然后在PATH里边配置一下,然后去cmd任一目录运行一下erl。
安装成功的话,结果如上图。
如果报错:“不是内部或外部命令”,那就检查一下环境变量,然后重启命令行(改完环境变量一定要重启命令行)。
一般erl安装都比较简单。
第二步:安装RabbitMQ
安装rabbitmq-server-3.7.6.exe。安装目录要没有中文而且尽量浅一点(否则会报奇葩错误,比如我的目录稍微深了一下,运行命令就报错:此时不该有xxx,然后浪费了好长时间)。
1.安装完成之后去rabbitmq的sbin目录下cmd,然后运行rabbitmq-plugins enable rabbitmq_management
意思是启用rabbitmq_management这个插件,插件在sbin同级目录的plugins中。
成功如图:(失败的话请往后看)
D:\RabbitMQ_ERLang\RabbitMQ Server\rabbitmq_server-3.7.6\sbin>rabbitmq-plugins.bat enable rabbitmq_management
2.rabbitmq-plugins enable rabbitmq_stomp
D:\RabbitMQ_ERLang\RabbitMQ Server\rabbitmq_server-3.7.6\sbin>rabbitmq-plugins enable rabbitmq_stomp
启用rabbitmq_stomp插件,https://blog.csdn.net/linshi100q/article/details/52822575这个网址是我找的对这个插件的理解,想了解的可以看一下。
3.访问RabbitMQ自带的管理界面(http://127.0.0.1:15672,启用了management插件之后就能用了)页面如下:
已有账户是guest,密码同名
4.此外,还想重新建一个用户的话,命令如下
/** 在rabbitmq的sbin目录下,逐行执行
rabbitmqctl add_user test test (add一个test账户,密码test)
rabbitmqctl set_user_tags test administrator (设置为administrator)
rabbitmqctl set_permissions -p / test ".*" ".*" ".*"
至此,安装完成,附管理界面:
再说一下安装过程中出现的错误:
主要是在运行rabbitmq-plugins enable rabbitmq_management的时候报错
Distribution failed:
{{:shutdown, {:failed_to_start_child, :net_kernel,
{:EXIT, :nodistribution}}},
{:child, :undefined, :net_sup_dynamic,
{:erl_distribution, :start_link, [[:rabbitmqcli28, :shortnames], false]}, :permanent, 1000, :supervisor, [:erl_distribution]}}
这时候去看服务里边的RabbitMQ服务(安装完RabbitMQ会自动注册一个自启动的RabbitMQ服务),点击启动,然后显示已启动,刷新一下 就会显示未启动(实际没有启动成功),
然后在命令行sbin目录下执行以下rabbitmq-service start会报如下错误
ERROR: epmd error for host
Please check your configuration: nxdomain (non-existing domain)
根据这个error可以看到,我安装错误的原因是host名字的问题,nxdomain域名不存在
这时候cmd下运行hostname,看一下自己的主机名,包含汉字,然后改成没有汉字的之后问题解决。
改主机名:计算机>属性>计算机名、域和工作组设置这里的 更改设置>更改 就可以了
因为我们去看上边rabbitmq-plugins enable rabbitmq_management执行成功地图片可以看到:
# LAPTOP-YHCOOKIE是我的主机名
Enabling plugins on node rabbit@LAPTOP-YHCOOKIE
修改RabbitMQ服务端口的方法:
默认端口是5672,若是需要修改的话,可进行如下操作:
rabbit目录底下和sbin目录同级的有一个etc,etc下边有rabbitmq.config.example这个是配置文件的样例。复制一个粘贴到etc下边(就是同一个目录下),改名为rabbitmq.config。
文本编辑器打开他,找到%%{tcp_listeners, [5672]},这一行,大概是在第19行左右。
去掉%%,然后把端口改成你想要的。然后去下边找到%%{heartbeat, 60}大概在201行,这个是心跳,去掉百分号和后边的逗号(因为配置之间用逗号隔开,但是会最后一条后边不加逗号)
配置文件的其他项在这就不展开解释了(因为我不懂)。
改好这两条之后,保存一下,然后去配一个环境变量RABBITMQ_CONFIG_FILE,值写到你的目录\etc\rabbitmq为止。
然后用管理员身份运行cmd,去到rabbitmq的sbin下 执行rabbitmq-service stop(停止服务),然后rabbit-service install(更新一下服务,因为我们刚改了配置文件),最后rabbit-service start(启动服务),此时你再去查看rabbitmq启动的端口的话,应该就是你新配置的端口了。
有什么其他问题的话,还希望你能留下评论,我们一块解决。