Linux下Erlang&RabbitMQ服务安装配置

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

RabbitMQ是流行的开源消息队列系统,是AMQP(Advanced Message Queuing Protocol高级消息队列协议)的标准实现,用erlang语言开发。RabbitMQ据说具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用,具体特性还在验证中,待检验。由于项目需要,安装并配置了RabbitMQ,服务器操作系统是CentOS7(是Linux都稳),服务器是阿里云主机。具体步骤如下:

*************以下操作使用root用户以防无权限***************

一.Erlang安装配置

1.下载安装包,地址http://www.erlang.org/downloads,我选择的是otp_src_20.3.tar.gz。

 然后解压文件:

   1.# tar zvxf otp_src_20.3.tar.gz
   2.# mv otp_src_20.3/ /usr/local/otp_src_20.3
   3.# cd otp_src_20.3
   4.# ./configure --prefix=/usr/local/erlang --without-javac

 报错:

configure: error: No curses library functions found

configure: error: /bin/sh '/root/otp/erts/configure' failed for erts

安装依赖文件:

# yum -y install ncurses-devel

#./configure --prefix=/usr/local/erlang --without-javac

1.1 发现yum使用不了,真衰呀,不过有解决方案。

1.1.1下载软件包,记得对应下载完整。

软件包名称

下载地址

yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

https://mirrors.aliyun.com/centos/6.9/os/x86_64/Packages/

(软件版本可能会更新)

python-urlgrabber-3.9.1-11.el6.noarch.rpm

yum-3.2.29-81.el6.centos.noarch.rpm

yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

Centos-6.repo

http://mirrors.aliyun.com/repo/

1.1.2、不管yum有没有可以使着删除:

(1)# rpm -qa | grep yum | xargs rpm -e --nodeps

 (2)# rpm -e python-urlgrabber

1.1.3、安装软件包:

 

      # rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm

             # rpm -ivh python-urlgrabber-3.9.1-11.el6.noarch.rpm

   这2个软件包一起安装,有依赖关系

       # rpm -ivh yum-3.2.29-81.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

1.1.4、更新repo:

      # cd /etc/yum.repos.d/

      # mv rhel-source.repo rhel-source.repo.bak

1.1.5修改Centos-6.repo

# vim Centos-6.repo  (我是把该文件放在/etc/yum.repos.d/下)

[base]修改为[aliyun]

把文件中“$releasever”替换成6 这个是6是5 你得看看你系统是什么版本的 对应下载 (命令:cat /proc/version)

 :%s#$releasever#6#g

       1.1.6 试一下以下操作,看是否安装成功。

      # yum clean all

      # yum makecache

      # yum list

      # yum repolist

2.恭喜你安装成功,继续安装 ncurses-devel

# yum -y install ncurses-devel

#./configure --prefix=/usr/local/erlang --without-javac

又报错,命运多舛,没关系自有解决方案,永远不要放弃自己人生的目标与方向!

*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************
crypto         : No usable OpenSSL found
jinterface     : Java compiler disabled by user
odbc           : ODBC library - link check failed
orber          : No C++ compiler found
ssh            : No usable OpenSSL found
ssl            : No usable OpenSSL found

*********************************************************************

执行命令:

# yum list | grep ssl
# yum install openssl-devel

报错
*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************
jinterface     : Java compiler disabled by user
odbc           : ODBC library - link check failed
orber          : No C++ compiler found

*********************************************************************

执行命令:

# yum list | grep ODBC
# yum install unixODBC-devel

#./configure --prefix=/usr/local/erlang --without-javac

报错
*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************
jinterface     : Java compiler disabled by user
orber          : No C++ compiler found
*********************************************************************

执行命令:

# yum install gcc-c++

#./configure --prefix=/usr/local/erlang --without-javac

# make

# make install

安装完成!

测试Erlang是否安装正确

执行 /usr/local/erlang/erl 或者/usr/local/otp_src_20.3/erl

Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.3  (abort with ^G)
1> 

退出命令:

halt().

然后在配置Erlang环境变量,vi /etc/profile文件,增加下面的环境变量:

#set erlang environment
export PATH=$PATH:/usr/local/erlang/bin

使文件生效命令

source  /etc/profile

至此Erlang安装完毕,革命未完成,我们继续安装,rabbitmq.

二.rabbtiMQ安装配置

1.下载安装RabbitMQ:这里是通过weget下载,你也可以先在本地下载,再通过ftp上传,只要你喜欢。

weget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xz

解压:

xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz

tar -xvf rabbitmq-server-generic-unix-3.6.1.tar  -C /usr/local/rabbitmq_3.6.1

2.然后在配置rabbitmq环境变量,vi /etc/profile文件,增加下面的环境变量:

#set rabbitmq environment
export PATH=$PATH:/usr/local/rabbitmq_3.6.1/sbin

使文件生效命令

source  /etc/profile

3.RabbitMQ服务启动关闭

以上就已经完成了RabbitMq的安装,怎么启动服务呢?

启动服务:

cd /usr/local/rabbitmq_3.6.1/sbin
./rabbitmq-server -detached

 查看服务状态:

[root@millet sbin]# ./rabbitmqctl status
Status of node rabbit@iZ25e3bt9a6Z ...
[{pid,11849},
 {running_applications,
     [{rabbitmq_management,"RabbitMQ Management Console","3.6.1"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.1"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.1"},
      {webmachine,"webmachine","1.10.3"},
      {amqp_client,"RabbitMQ AMQP Client","3.6.1"},
      {mochiweb,"MochiMedia Web Server","2.13.0"},
      {syntax_tools,"Syntax tools","1.7"},
      {ssl,"Erlang/OTP SSL application","7.3"},
      {public_key,"Public key infrastructure","1.1.1"},
      {asn1,"The Erlang ASN1 compiler version 4.0.2","4.0.2"},
      {crypto,"CRYPTO","3.6.3"},
      {compiler,"ERTS  CXC 138 10","6.0.3"},
      {inets,"INETS  CXC 138 49","6.2"},
      {rabbit,"RabbitMQ","3.6.1"},
      {mnesia,"MNESIA  CXC 138 12","4.13.3"},
      {rabbit_common,[],"3.6.1"},
      {xmerl,"XML parser","1.3.10"},
      {os_mon,"CPO  CXC 138 46","2.4"},
      {ranch,"Socket acceptor pool for TCP protocols.","1.2.1"},
      {sasl,"SASL  CXC 138 11","2.7"},
      {stdlib,"ERTS  CXC 138 10","2.8"},
      {kernel,"ERTS  CXC 138 10","4.2"}]},
 {os,{unix,linux}},
 {erlang_version,
     "Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:64] [hipe] [kernel-poll:true]\n"},
 {memory,
     [{total,64111264},
      {connection_readers,0},
      {connection_writers,0},
      {connection_channels,0},
      {connection_other,2808},
      {queue_procs,2808},
      {queue_slave_procs,0},
      {plugins,367288},
      {other_proc,19041296},
      {mnesia,61720},
      {mgmt_db,158696},
      {msg_index,47120},
      {other_ets,1372440},
      {binary,128216},
      {code,27368230},
      {atom,992409},
      {other_system,14568233}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,6556241100},
 {disk_free_limit,50000000},
 {disk_free,37431123968},
 {file_descriptors,
     [{total_limit,65435},
      {total_used,2},
      {sockets_limit,58889},
      {sockets_used,0}]},
 {processes,[{limit,1048576},{used,204}]},
 {run_queue,0},
 {uptime,412681},
 {kernel,{net_ticktime,60}}]

4.关闭服务:

[root@milletsbin]# ./rabbitmqctl stop
Stopping and halting node rabbit@millet...

5.配置网页插件

首先创建目录,否则可能报错:(这步我没有用)

mkdir /etc/rabbitmq 

然后启用插件:

./rabbitmq-plugins enable rabbitmq_management 

配置linux 端口 15672 网页管理  5672 AMQP端口
然后访问http://localhost:15672即可 

默认用户guest 密码guest

6.远程访问配置

默认网页是不允许访问的,需要增加一个用户修改一下权限,代码如下:(下面的操作我都是在界面新增的,看你想使用那种。)

添加用户:rabbitmqctl add_user admin admin

添加权限:rabbitmqctl set_permissions -p "/" hxb ".*" ".*" ".*"

修改用户角色rabbitmqctl set_user_tags hxb administrator

然后就可以远程访问了,然后可直接配置用户权限等信息。

7.rabbitmq常用命令

  add_user        <UserName> <Password>

  delete_user     <UserName>

  change_password <UserName> <NewPassword>

  list_users

  add_vhost    <VHostPath>

  delete_vhost <VHostPath>

  list_vhostsset_permissions   [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>

  clear_permissions [-p <VHostPath>] <UserName>

  list_permissions  [-p <VHostPath>]

  list_user_permissions <UserName>

  list_queues    [-p <VHostPath>] [<QueueInfoItem> ...]

  list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]

  list_bindings  [-p <VHostPath>]

  list_connections [<ConnectionInfoItem> ...]

大功告成。

获取更多精彩内容,请支持关注博主公众号

猜你喜欢

转载自blog.csdn.net/StarskyBoy/article/details/81059439