概念
节点(Node)
:Erlang
虚拟机的每个实例称为节点(Node)
,节点(Node)
之间可以进行本地通信(不管它们是否真的在同一台服务器上) ,因为Erlang
天生就能让应用程序无须知道对方是否在同一台机器上即可互相通信。当启动Erlang
节点时,可以指定一个节点名称,name(长名称)
或者sname(short name)
,短名称例如rabbit@hostname
,长名称例如rabbitmq@hostname.localhost
,短名称是rabbtimq
启动的默认方式Erlang Cookie
:Erlang
节点(Node)通过交换作为密钥令牌的Erlang Cookie
以获得认证,因为你一旦连接到远程节点后,就能执行命令,因此有必要确保节点是可信的。Erlang
将令牌存储在名为.erlang.cookie
的文件(如果使用解压方式安装通常在home目录下,如果使用rpm方式安装在/var/lib/rabbitmq/目录下下),查看:
```bash
# cat ~/.erlang.cookie
XDMPQXXASEVWJEXUDUYG
```
Mnesia
:Mnesia
是Erlang的NoSQL数据库,RabbitMQ使用它存储Queue、Exchange、bind等信息,RabbitMQ启动时会启动Mnesia数据库
,如果此数据库启动失败,RabbitMQ也启动失败。
单击安装
-
查看RabbitMQ Erlang版本:https://www.rabbitmq.com/which-erlang.html
-
环境准备
# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.5.1804 (Core) Release: 7.5.1804 Codename: Core # uname -r 3.10.0-862.14.4.el7.x86_64
-
安装Erlang
# wget http://erlang.org/download/otp_src_20.3.tar.gz # tar -zxvf otp_src_20.3.tar.gz -C /usr/local # cd /usr/local/otp_src_20.3 # export ERL_TOP=`pwd` # ./configure # make # make release_tests # cd release/tests/test_server # $ERL_TOP/bin/erl -s ts install -s ts smoke_test batch -s init stop # $ERL_TOP/release/tests/test_server/index.html 打开此文件确定所有的测试用例是否都没有错误 # make install
-
安装Erlang遇到的问题
1. # ./configure 出现以下错误 configure: error: No curses library functions found configure: error: /bin/sh '/usr/local/otp_src_20.3/erts/configure' failed for erts 解决方案: yum -y install ncurses-devel或者把必须的都安装上 yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
-
配置Erlang环境
# vim /etc/profile export ERLANG_HOME=/usr/local/otp_src_20.3/ export PATH=$ERLANG_HOME/bin:$PATH # source /etc/profile # erl -version
-
安装RabbitMQ
# wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz