Linux (版本centos 6.x)安装 RabbitMQ

1. 首先下载erlang。原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的。

**先安装一下依赖:**
yum -y install unixODBC unixODBC-devel wxBase wxGTK SDL wxGTK-gl

yum -y install install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl openssl-devel xmlto zip unzip

yum -y install gtk2-devel binutils-devel

2. 下载 安装 otp_src_19.3.tar.gz

wget http://erlang.org/download/otp_src_19.3.tar.gz 

解压otp_src_19.3.tar.gz:

tar -xvzf otp_src_19.3.tar.gz
cd otp_src_19.3

配置cd otp_src_19.3:

./configure --enable-smp-support --enable-threads --enable-sctp --enable-kernel-poll --enable-hipe --with-ssl

参数说明:

  --prefix 指定安装目录
  --enable-smp-support启用对称多处理支持(Symmetric Multi-Processing对称多处理结构的简称)
  --enable-threads启用异步线程支持
  --enable-sctp启用流控制协议支持(Stream Control Transmission Protocol,流控制传输协议)
  --enable-kernel-poll启用Linux内核poll
  --enable-hipe启用高性能Erlang(High Performance Erlang)参考资料:http://www.cnblogs.com/me-sa/archive/2012/10/09/erlang_hipe.html
  --with-ssl使用SSL包

执行命安装

make && make install

检测erlang 是否安装正常

find / -name erlang

/usr/local/erlang
/usr/local/erlang/lib/erlang
/usr/local/erlang/lib/erlang/lib/jinterface-1.6.1/java_src/com/ericsson/otp/erlang
/usr/local/lib/erlang
/usr/local/lib/erlang/lib/jinterface-1.7.1/java_src/com/ericsson/otp/erlang
/usr/erlang
/usr/erlang/otp_src_19.3/lib/jinterface/priv/com/ericsson/otp/erlang
/usr/erlang/otp_src_19.3/lib/jinterface/java_src/com/ericsson/otp/erlang

find / -name erl

/usr/local/bin/erl
/usr/local/erlang/bin/erl
/usr/local/erlang/lib/erlang/bin/erl
/usr/local/erlang/lib/erlang/erts-7.3/bin/erl
/usr/local/lib/erlang/erts-8.3/bin/erl
/usr/local/lib/erlang/bin/erl
/usr/erlang/otp_src_19.3/bin/erl
/usr/erlang/otp_src_19.3/bootstrap/bin/erl
/usr/erlang/otp_src_19.3/erts/etc/win32/msys_tools/erl
/usr/erlang/otp_src_19.3/erts/etc/win32/cygwin_tools/erl

查看是否安装成功

[root@chenwangmin /]# erl
Erlang/OTP 19 [erts-8.3] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.3  (abort with ^G)
1> 
提示如上命令说明已经安装成功。

3. 下载 安装 rabbitMQ

下载rabbitmq-server-generic-unix-3.6.9.tar.xz

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-generic-unix-3.6.9.tar.xz

解压

xz -d rabbitmq-server-generic-unix-3.6.9.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.6.9.tar

配置环境变量

JAVA_HOME=/usr/java/jdk1.8.0_77
ERL_HOME=/usr/local/lib/erlang //配置这个
RABBITMQ_HOME=/usr/rabbitmq/rabbitmq_server-3.6.9 //配置这个
CLAsspATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin:$ERL_HOME/bin:$RABBITMQ_HOME/sbin //配置这个
export PATH JAVA_HOME CLAsspATH ERL_HOME RABBITMQ_HOME //配置这个

**启动RabbitMQ Server**

[root@chenwangmin /]# rabbitmq-server start

  ##  ##
  ##  ##      RabbitMQ 3.7.4. copyright (C) 2007-2018 Pivotal Software,Inc.
  ##########  Licensed under the MPL.  See http://www.rabbitmq.com/
  ######  ##
  ##########  Logs: /var/log/rabbitmq/rabbit@chenwangmin.log
                /var/log/rabbitmq/rabbit@chenwangmin_upgrade.log

          Starting broker...
 completed with 3 plugins.
提示此信息启动成功!

添加用户

[root@chenwangmin sbin]#  rabbitmqctl add_user admin 12345
Creating user "admin" ...

设置用户权限为administrator

[root@chenwangmin sbin]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
[root@chenwangmin sbin]#

查看插件信息

[root@chenwangmin sbin]# rabbitmq-plugins list
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: [Failed to contact rabbit@chenwangmin - status not shown]
 |/
[  ] rabbitmq_amqp1_0                  3.7.4
[  ] rabbitmq_auth_backend_cache       3.7.4
[  ] rabbitmq_auth_backend_http        3.7.4
[  ] rabbitmq_auth_backend_ldap        3.7.4
[  ] rabbitmq_auth_mechanism_ssl       3.7.4
[  ] rabbitmq_consistent_hash_exchange 3.7.4
[  ] rabbitmq_event_exchange           3.7.4
[  ] rabbitmq_federation               3.7.4
[  ] rabbitmq_federation_management    3.7.4
[  ] rabbitmq_jms_topic_exchange       3.7.4
....................
....................
[root@chenwangmin sbin]#

启用插件 ,使用rabbitmq管理界面

[root@chenwangmin sbin]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@chenwangmin...
Plugin configuration unchanged.

查看运行状态

[root@chenwangmin sbin]# rabbitmqctl status
Status of node rabbit@chenwangmin ...
[{pid,50625},{running_applications,[{rabbitmq_management,"RabbitMQ Management Console","3.7.4"},{rabbitmq_web_dispatch,"RabbitMQ Web dispatcher",{rabbitmq_management_agent,"RabbitMQ Management Agent",{rabbit,"RabbitMQ",{os_mon,"CPO  CXC 138 46","2.4.2"},{cowboy,"Small,fast,modern HTTP server.","2.2.2"},{amqp_client,"RabbitMQ AMQP Client",{rabbit_common,"Modules shared by rabbitmq-server and rabbitmq-erlang-client",{ranch_proxy_protocol,"Ranch Proxy Protocol Transport","1.4.4"},{ranch,"Socket acceptor pool for TCP protocols.","1.4.0"},....................
    ....................

重启服务

service iptables restart

查看页面

如果登陆http://IP:15672/ 还不能看到管理界面。可能事防火墙问题。

需要对防火墙进行处理:

找到iptables配置路径:
[root@Rabbitmq sbin]# find / -name iptables
/etc/sysconfig/iptables

修改配置文件:

[root@Rabbitmq sbin]# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 28017 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 15672 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5672 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25672 -j ACCEPT

重启服务:

service iptables restart

4 问题总结

  1. -bash: wget: command not found的两种解决方法?

    1、rpm 安装
    
    rpm 下载源地址:http://mirrors.163.com/centos/6.2/os/x86_64/Packages/
    
    下载wget的RPM包:http://mirrors.163.com/centos/6.2/os/x86_64/Packages/wget-1.12-1.4.el6.x86_64.rpm
    
    rpm ivh wget-1.12-1.4.el6.x86_64.rpm 安装即可。
    
    如果客户端用的是SecureCRT,linux下没装rzsz 包时,rz无法上传文件怎么办?我想到的是安装另一个SSH客户端:SSH Secure Shell。然后传到服务器上安装,这个比较费劲,所以推荐用第二种方法,不过如果yum包也没有安装的话,那就只能用这种方法了。
    
    2、yum安装
    yum -y install wget
  2. 如果没有xz解压软件?

    安装xz解压软件:
    yum -y install xz

5. 常用命令

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 xxx

4). 用户管理
新建用户:rabbitmqctl add_user xxxpwd
删除用户: rabbitmqctl delete_user xxx
改密码: rabbimqctlchange_password {username} {newpassword}
设置用户角色:rabbitmqctlset_user_tags {username} {tag ...}
Tag可以为 administrator,monitoring,management

5). 权限管理
权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath
Vhost路径
user
用户名
Conf
一个正则表达式match哪些配置资源能够被该用户访问。
Write
一个正则表达式match哪些配置资源能够被该用户读。
Read
一个正则表达式match哪些配置资源能够被该用户访问。

6). 获取服务器状态信息
服务器状态:rabbitmqctl status

系统命令

卸载

#rpm -qa|grep rabbitmq

rabbitmq-server-3.6.1-1.noarch

#rpm -e --nodeps rabbitmq-server-3.6.1-1.noarch

#rpm -qa|grep erlang

esl-erlang-18.3-1.x86_64

#rpm -e --nodeps esl-erlang-18.3-1.x86_64

服务

#service rabbitmq-server start --后台方式运行

#service rabbitmq-server stop  --停止运行

#service rabbitmq-server status --查看状态

Rabbit MQ应用 https://github.com/401Studio/WeekLearn/issues/2

走慢一点,坐下来陪陪自己,让心静下来,做点自己真正喜欢的事,这才是真正的生活。心静,幸福自然来;气和,生命才能鲜活。

美好一天从“静心”开始!

共同学习,共同进步,技术交流群:210470210

自我救赎之路—Linnx centos 6.x 安装rabbitmq的更多相关文章

  1. ios – 如何使用Objective C类中的多个参数调用Swift函数?

    本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请发送邮件至dio@foxmail.com举报,一经查实,本站将立刻删除。

  2. ios – Swift 4添加手势:覆盖vs @objc

    我想在我的视图中添加一个手势,如下所示:但是,在Swift4中,我的编译器给出了以下错误:建议添加@objc以将此实例方法公开给Objective-C.实现此目的的另一个选项将覆盖touchesBegan()函数并使用它来处理点击.我试图以“Swift”的方式做到这一点,而不必带入Obj-C.有没有纯粹的Swift方式来添加这个轻击手势而不使用@objc?

  3. ios – 将视频分享到Facebook

    我正在编写一个简单的测试应用程序,用于将视频从iOS上传到Facebook.由于FacebookSDK的所有文档都在Objective-C中,因此我发现很难在线找到有关如何使用Swift执行此操作的示例/教程.到目前为止我有这个在我的UI上放置一个共享按钮,但它看起来已禁用,从我读到的这是因为没有内容设置,但我看不出这是怎么可能的.我的getVideoURL()函数返回一个NSURL,它肯定包含视

  4. ios – 以编程方式在Swift中添加联系人

    我想在Swift中以编程方式添加联系人.我发现了一些Objective-C示例,但我没有让它们工作,甚至在Objective-C中也没有.我不希望这涉及到AddressBookUI,因为我想从我自己的UI中获取值.解决方法这是在Swift中添加联系人的快速方法.我在我的iPhone5iOS7.1上验证了它,因为我发现模拟器并不总是与我的手机对AB的东西相同.您可以添加一个按钮并指向此方法:顺便说一下–它假设你已经分配了一个地址簿var,你可以通过覆盖viewDidAppear来打开视图.它也会执行安全提示

  5. cocoapods – 命令/ bin / sh失败,退出代码23

    适用于所有豆荚,无需豆荚但仍然是同样的错误.有任何想法吗?

  6. ios – 为目标c中的方法传递未知类型的参数,可能吗?

    是否可以将未知类型的参数传递给objective-C方法?在C#中你可以写实现这一点,但我知道Objective-C没有泛型,所以有没有其他方法可以在Objective-C中实现这一点?我需要这个,因为我想创建一个方法来改变不同对象的文本颜色,如UITextField和UIButton的占位符文本.所以我的计划是创建一个名为textWhite的方法,然后在此方法中检查对象的类型,然后运行匹配的代码以使文本颜色变为白色.解决方法是的,可以传递未知类型的参数.见下面的例子.请参考使用id对象的链接作为参数Us

  7. ios – Swift指针算术和解除引用;将一些类似C的地图代码转换为Swift

    我有一点似乎没有工作的Swift代码……解决方法您正在指定locationPointer指向新位置,但仍在下一行中使用ptr,并且ptr的值尚未更改.将您的最后一行更改为:或者你可以改变指向var的指针并推进它:

  8. ios – “禁用模块时使用’@import’”错误 – 启用模块和链接框架= YES

    我有一个使用CocoaPods并使用’SCLAlertView-Objective-C’窗格的项目.该pod使用@importUIKit;模块样式导入.我在目标和项目设置中将“启用模块(C&Objective-C)”和“自动链接框架”设置为YES.当模块被禁用时,我仍然得到“使用’@import’错误.有没有什么可以阻止Xcode能够启用模块,如使用.pch文件,任何链接器标志,或者我没有提到的任

  9. XCode 6.3立即在抛出的Objective-C异常上引发SIGABRT

    考虑以下目标-C代码在XCode6.2中,它按预期工作(记录“错误消息”).但是,由于我们升级到6.3,抛出行(throwstd::logic_error…)引发SIGABRT(堆栈跟踪仅包含_cxa_throw和_pthread_kill,超出applicationdidFinishLaunchingWithOptions)并导致应用程序崩溃.这只发生在我们的应用程序中–当我将完全相同的代码复制

  10. ios – 在swift框架中使用Bridging Headers时失败

    我正在做一个快速的框架,我想使用旧的目标c类.为此,我使用桥接头方法但是当我尝试构建时出现此错误:我将我的{PROJECT}-Bridging-Header.h添加到Swift编译器中的Objective-C桥接头–代码生成我怎么解决它?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部