上一篇<<RabbitMQ 上手记录-part 1>>介绍了一些基础知识,整理了一些基础概念。接下来整理一些安装步骤和遇到的问题。
我在CentOS7和Ubuntu16.4上都安装成功过,步骤大同小异,这里以CentOS7为例子,整理一下安装步骤。
CentOS是属于Red Hat Enterprise Linux系列的发行版,所以在RabbitMQ官方的安装指南里,需要参考RPM-based的安装指南http://www.rabbitmq.com/install-rpm.html。
类似于其他的软件,RabbitMQ也提供了rpm文件,原以为可以直接安装rpm文件就完事了,实际上没那么简单。
RabbitMQ是基于erlang语言开发的,也就是说必须先安装了erlang才可以。(erlang是什么?据我了解是用于通讯行业的一种编程语言,可实现节点之间的相互通讯,该语言最初由爱立信公司发布,具体还是去google吧)
安装erlang
第一次安装的时候就是卡在了安装erlang语言上,下面是整理后的可行的安装方式。
a.确保启用了EPEL
输入如下命令
yum -y install epel-release
EPEL是用来在安装过程中解决依赖项的问题,会自动安装依赖的软件或组件,这个坑不填了,到最后一步会提示了这找不到,那找不到(也可能是我安装的是最小化版的CentOS有关)。
然后输入以下命令刷新repository
yum repolis
b.安装erlang
根据官方的安装教程可以顺利的走完安装过程
https://www.erlang-solutions.com/resources/download.html
以下是纯安装步骤
下载rpm并安装
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
编辑erlang_solutions.repo
sudo vim /etc/yum.repos.d/erlang_solutions.repo
把gpgcheck设置为1
内容如下
sudo yum install erlang
然后输入erl看看命令行是否可用,正常情况下应该能显示如下界面
还可以进一步写一个helloworld程序验证一下,创建一个hello.erl文件,代码如下
-module(hello).
-export([hello_world/0]).
hello_world() -> io:fwrite("hello, world ").
然后在erl命令行输入
c(hello).
hello:hello_world().
能看到消息正常输出,那么可以确认erlang安装成功
安装RabbitMQ
在填平了erlang的坑之后,后面安装RabbitMQ就简单多了,直接贴安装过程命令
sudo rpm --import https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
sudo yum install rabbitmq-server-3.7.4-1.el7.noarch.rpm
sudo chkconfig rabbitmq-server on
sudo /sbin/service rabbitmq-server start
到此安装完毕。
输入如下命令看看服务是否正常启动了
sudo rabbitmqctl status
在输出中能看到running_applications,pid等可以断定服务已经在运行了。
[{pid,21407},
{running_applications,
[{rabbit_common,
"Modules shared by rabbitmq-server and rabbitmq-erlang-client",
"3.7.4"},
{ranch_proxy_protocol,"Ranch Proxy Protocol Transport","1.4.4"},
{ranch,"Socket acceptor pool for TCP protocols.","1.4.0"},
{ssl,"Erlang/OTP SSL application","8.2.3"},
{public_key,"Public key infrastructure","1.5.2"},
{asn1,"The Erlang ASN1 compiler version 5.0.4","5.0.4"},
{crypto,"CRYPTO","4.2"},
…………………………..
……………………………..
rabbitmqctl是个强大的命令行管理工具,后续会整理一下这个基础的用法,在使用集群的时候要这个命令会用得很多。
RabbitMQ安装运行起来之后,后面就可以为所欲为了,发布/订阅消息,集群和高可用,复制都可以实施 了,更多学习内容整理中。。。。。。。。