Linux下 RabbitMQ的安装与配置

本文发布时间: 2019-Mar-22
一 Erlang安装1.RabbitMQ是基于Erlang的,所以首先必须配置Erlang环境.从Erlang的官网http://www.erlang.org/download.html下载最新的erlang安装包,Linux和MacOSX下载的版本是http://www.erlang.org/download.html2.然后解压下载的gz包 tar -zxvf*.tar.gz3.cd 进入解压出来的文件夹4.执行./configure--prefix=/opt/erlang 就会开始编译安装 会编译到 /opt/erlang 下 如果不报错就执行make 和 makeinstall5.如果报错:6.[root@localhost ~]# yum install gcc继续报错redhat默认自带的yum源需要注册,才能更新,报错:This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.可替换为centos对应的源。 操作如下:1.检查是否安装yum包。查看RHEL是否安装了yum,若是安装了,那么又有哪些yum包: rpm -qa |grep yum2 删除redhat自带的yum包 rpm -qa|grep yum|xargs rpm -e --nodeps(不检查依赖,直接删除rpm包) rpm -qa |grep yum (查询确认)[iyunv@localhost ~]#3.下载新的yum包。使用Centos6.5的yum包 1) 查看版本号和系统类别: cat /etc/redhat-release arch 2)根据上一步,找到对应的yum包,然后下载。我的服务器对应的为:wgethttp://mirrors.163.com/centos/6/yum-metadata-parser-1.1.2-16.el6.x86_64.rpmwgethttp://mirrors.163.com/centos/6/ yum-3.2.29-40.el6.centos.noarch.rpmwgethttp://mirrors.163.com/centos/6/ yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm 3)执行: rpm -ivh yum-metadata-parser-1.1.2-16.el6.x86_64.rpm yum-3.2.29-40.el6.centos.noarch.rpm yum-plugin-fastestmirror-1.1.30-30.el6.noarch.rpm 如果这一步报错,大底如下: libc.so.6 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libc.so.6(GLIBC_2.0) is needed by yum-metadata-parser-1.1.2-16.el6.i686 libc.so.6(GLIBC_2.1.3) is needed by yum-metadata-parser-1.1.2-16.el6.i686 libglib-2.0.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libpthread.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libpython2.6.so.1.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libsqlite3.so.0 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libxml2.so.2 is needed by yum-metadata-parser-1.1.2-16.el6.i686 libxml2.so.2(LIBXML2_2.4.30) is needed by yum-metadata-parser-1.1.2-16.el6.i686 则说明下载安装的yum包与系统版本不匹配,需要重新下载安装。另外,163镜像站点对于6.0~6.5的资源均合并在6的目录下。 4)更换yum源,将原有源删除或备份到别的目下下: cd /etc/yum.repos.d/ wgethttp://mirrors.163.com/.help/CentOS6-Base-163.repo vi CentOS6-Base-163.repo 编辑文件,把文件里面的$releasever全部替换为版本号:6(注意,不是6.5!)最后保存! 4.清除原有缓存,重建缓存: clean all yum makecache 5.更新系统: yum update 6. [root@localhost ~]# yum install gcc至此,如果不报错说明GCC安装成功重新开始安装erlang参考http://blog.csdn.net/chszs/article/details/28638305Erlang目前已经是Fedora和Debian/Ubuntu软件仓库中的一部分。Erlang目前最新的版本是OTP 18.2。Erlang是一种编程语言,用于构建大规模、高可伸缩性、高可用性的软实时系统的编程语言。它已经在电信、金融、电子商务、网络电话和即时消息中得到应用。Erlang的运行时系统已经内建了对并发、分布式和容错的支持。OTP是Erlang库和设计原则的集合,提供了开发各种系统的中间件。它包含了自己的分布式数据库、面向其它编程语言的接口、调试和发布处理工具等。BEAM是Erlang代码执行所需的虚拟机。Erlang代码编译后的扩展名为.beam。ERTS是Erlang的运行时系统,他包括了BEAM、内核和标准库等组件。官方推荐从源码安装Erlang,因此下面开始从源码安装OTP 18.2。下载OTP 18.2源码:http://www..org/download/otp_src_18.2.1.tar.gz# tar zvxf otp_src_18.2.tar.gz# mv otp_src_18.2/ otp# cd otp# ./configure --prefix=/opt/erlang --without-javac报错:configure: error: No curses library functions foundconfigure: error: /bin/sh '/root/otp/erts/configure' failed for erts# yum -y install ncurses-devel# ./configure --prefix=/opt/erlang --without-javac报错******************************************************************************************* APPLICATIONS DISABLED *******************************************************************************************crypto : No usable OpenSSL foundjinterface : Java compiler disabled by userodbc : ODBC library - link check failedorber : No C++ compiler foundssh : No usable OpenSSL foundssl : No usable OpenSSL found*********************************************************************# yum list | grep ssl# yum install openssl-devel# ./configure --prefix=/opt/erlang --without-javac# yum list | grep ODBC# yum install unixODBC-devel# ./configure --prefix=/opt/erlang --without-javac# yum install gcc-c++# ./configure --prefix=/opt/erlang --without-javac# make# make install# /opt/erlang/bin/erlErlang/OTP 17 [erts-6.0] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]Eshell V6.0  (abort with ^G)1> EvenN = lists:filter (fun (N) -> N rem 2 == 0 end, lists:seq(1,100)).[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42, 44,46,48,50,52,54,56,58|...] 有几种退出Erlang Shell的方法命令方式1:执行init:stop().命令方式2:执行halt().快捷键方式1:Control+C 然后选a快捷键方式2:Control+G 然后按q编译完成以后,进入/opt/erlang,输入erl测试erlang是否安装成功。 修改/etc/profile文件,增加下面的环境变量: #seterlangenvironment exportPATH=$PATH:/opt/erlang/bin sourceprofile使得文件生效 肯能会出现找不到包的情况,就直接yum install 吧修改/etc/profile文件,增加下面的环境变量ERL_HOME=/opt/erlangPATH=$ERL_HOME/bin:$PATHexport ERL_HOME PATH【安装总结】从源码编译安装Erlang,有两个库或工具是必须的:一是完整的GCC编译器环境二是Ncurses开发库还有一些库或工具,如果没有它们,在编译配置时会出现警告信息,而且可能不能通过配置。这些库有:1)OpenSSL开发库2)ODBC开发库3)Java编译器http://www.rabbitmq.com/download.html二.安装RabbitMQrpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.ascyum install rabbitmq-server-3.6.0-1.noarch.rpmwget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.0/rabbitmq-server-3.6.0-1.noarch.rpmyum install rabbitmq-server-3.6.0-1.noarch.rpm上面这两条语句任意一条就可以安装成功:但是我在安装rabbitmq-server的过程中遇到了一个问题:Error: Package: rabbitmq-server-3.6.0-1.noarch (/rabbitmq-server-3.6.0-1.noarch)Requires: erlang >= R16B-3You could try using --skip-broken to work around the problemYou could try running: rpm -Va --nofiles --nodigest这是由于erlang的版本问题,其实是没有影响的,你可以使用rpm -ivh --nodeps rabbitmq-server-3.6.0-1.noarch.rpm安装。如果没有安装成功:就用下面的绝招三 rabbitmq安装配置rabbitmq的安装有很多版本,我们使用GenericUnix版本。 cd/ wgethttp://www.rabbitmq.com/releases/rabbitmq-server/v2.7.1/rabbitmq-server-generic-unix-2.7.1.tar.gz下载rabbitmq tarzxvfrabbitmq-server-generic-unix-2.7.1.tar.gz-C/opt解压到指定的文件夹下 cd/opt,建立软链接ln-srabbitmq-server-generic-unixrabbitmq cdrabbitmq/sbin,./rabbitmq-server-detached可以实现后台启动 修改/etc/profile,添加环境变量 #setrabbitmqenvironment exportPATH=$PATH:/opt/rabbitmq/sbin sourceprofile使得文件生效 cd/opt/rabbitmq/sbin,./rabbitmqctlstop关闭rabbitmq 这样就完成了安装 启用管理方式(用网页方式管理MQ)cd /opt/rabbitmq/sbin/ 执行./rabbitmq-plugin enable rabbitmq-management 然后访问http://localhost:55672一 .如果安装成服务的就用这个来启动[root@master ~]# service rabbitmq-server restartWARNING: ignoring /etc/rabbitmq/rabbitmq.conf -- location has moved to /etc/rabbitmq/rabbitmq-env.confRestarting rabbitmq-server: FAILED - check /var/log/rabbitmq/shutdown_log, _errSUCCESSrabbitmq-server.[root@master ~]#RPM安装的,那就启动进程,启动控制台插件就可以了./rabbitmqctl status./rabbitmqctl status./rabbitmq-server –detached启动 控制台插件[root@slave5 bin]# ./rabbitmq-plugins enable rabbitmq_management[root@ master ~]# /sbin/service rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.对应的关闭命令为:/sbin/service rabbitmq-server stop5、管理Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。1). 服务器启动与关闭 启动: rabbitmq-server –detached 关闭:rabbitmqctl stop 若单机有多个实例,则在rabbitmqctlh后加–n 指定名称2). 插件管理 开启某个插件:rabbitmq-pluginsenable xxx 关闭某个插件:rabbitmq-pluginsdisablexxx 注意:重启服务器后生效。3).virtual_host管理 新建virtual_host: rabbitmqctladd_vhost xxx 撤销virtual_host:rabbitmqctl delete_vhost xxx4). 用户管理 新建用户:rabbitmqctl add_user xxxpwd 删除用户: rabbitmqctl delete_user xxx 改密码: rabbimqctlchange_password {username} {newpassword} 设置用户角色:rabbitmqctlset_user_tags {username} {tag ...} Tag可以为 administrator,monitoring, management5). 权限管理 权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read} Vhostpath Vhost路径 user 用户名 Conf 一个正则表达式match哪些配置资源能够被该用户访问。 Write 一个正则表达式match哪些配置资源能够被该用户读。 Read 一个正则表达式match哪些配置资源能够被该用户访问。6). 获取服务器状态信息 服务器状态:rabbitmqctl status 队列信息:rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...] Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready, messages_unacknowledged,messages,consumers,memory Exchange信息:rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem ...] Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments. Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...] Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments Connection信息:rabbitmqctllist_connections [connectioninfoitem ...] Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。 Channel信息:rabbitmqctl list_channels[channelinfoitem ...]Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked常用命令:查看所有队列信息# rabbitmqctl list_queues关闭应用# rabbitmqctl stop_app启动应用,和上述关闭命令配合使用,达到清空队列的目的# rabbitmqctl start_app清除所有队列# rabbitmqctl reset更多用法及参数,可以执行如下命令查看# rabbitmqctl3.rabbitmq常用命令rabbitmq-server start 或者 service rabbitmq-server start #启动rabbitmqrabbitmqctl list_exchangesrabbitmqctl list_bindingsrabbitmqctl list_queues #分别查看当前系统种存在的Exchange和Exchange上绑定的Queue信息。rabbitmqctl status #查看运行信息rabbitmqctl stop #停止运行rabbitmqrabbitmq-plugins enable rabbitmq_management #启动rabbitmq的图形管理界面,这个操作必须重启rabbitmq,然后在web中 http://127.0.0.1:15672 用户名和密码都是guest guest。如果局域网无法访问设置防火墙过滤规则或关闭防火墙。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:09pm
栏目列表