RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

它是一个很强的消息队列,是个中间件。

## 安装rabbitmq
# 安装依赖
yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
# 安装或更新EPEL库
yum -y install epel-release
# 或:
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release--.noarch.rpm # 安装erlang 下载 https://bintray.com/rabbitmq/rpm/erlang
# 注意el6 和 el7的区别
rpm -ivh erlang-21.1.-.el6.x86_64.rpm # centos6.5用el6
## 检查
erl # 进入erlang 出现:Erlang/OTP [erts-10.1.] [source] [-bit]...
halt(). # 退出 erlang
netstat -nltp # 端口4369即是erlang的进程 # 安装MQ 下载 # http://www.rabbitmq.com/download.html
rpm -ivh rabbitmq-server-3.7.-.el6.noarch.rpm

如果是CentOS7以上,安装时会稍有不同,除了注意版本的选择外,可能还需要安装依赖:

yum -y install socat

并且安装了erlang后,进程中看不到4369端口打开,但是当启动rabbitmq-server时,erlang会一起启动。

systemctl start rabbitmq-server

简单的服务启动与停止

## 服务管理命令
service rabbitmq-server start # 启动
service rabbitmq-server status # 状态
service rabbitmq-server stop # 停止
rabbitmq-plugins enable rabbitmq_management # 启用15672 web管理
# 如果执行这条命令,会在/etc/rabbitmq/ 下生成 文件 enabled_plugins ## 常用命令
rabbitmqctl # 帮助
rabbitmqctl status # 状态 同上 rabbitmqctl stop # 停止服务 会将节点及应用程序同时关闭
# 由于同一节点可能运行除rabbitmq 其他erlang程序,停止整个节点是不可取的 rabbitmqctl stop_app # 保持25672不停
rabbitmqctl start_app # 启动5672 和

# 3.7.11 默认情况下guest用户只能localhost访问。可以添加账号用于远程登录,或者启用guest远程。

## 用户管理
rabbitmqctl add_user admin # 添加用户admin
rabbitmqctl delete_user admin # 删除用户
rabbitmqctl change_password admin # 修改密码
rabbitmqctl list_users # 查看用户列表
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" # 赋予访问 / 权限
rabbitmqctl set_user_tags admin administrator # 赋予管理员权限

cp /usr/share/doc/rabbitmq-server-3.7.11/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
# 复制个配置文件到此后,修改内容:
  {loopback_users, []}, # 去掉此行前面的 %% 即启用此配置(最后面的逗号可能要去掉)
# 重启服务后,guest即可远程登录
service rabbitmq-server restart

## 用户角色 参考:
链接:https://www.jianshu.com/p/e3af4cf97820
用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容。
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。

## 以下博客都对操作RabbitMQ有详细介绍。
# springboot操作RabbitMQ使用参考:https://www.cnblogs.com/ityouknow/p/6120544.html
# C# 操作RabbitMQ使用参考: https://www.cnblogs.com/richieyang/p/5492432.html
# Node.js操作RabbitMQ https://www.cnblogs.com/wukong-holmes/p/9306733.html

升级

有一台CentOS7.5  Erlang 和 rabbitmq-server 都已经版本过低,官方已经不再支持。

升级时直接准备好 rpm 和 配置文件,然后写个批处理执行,完成。缺点是没有对数据备份,会有短暂的丢失。

在/opt/下放入文件:

rabbitmq-server-3.7.-.el7.noarch.rpm
erlang-21.3.8.4-.el7.x86_64.rpm

原有的/etc/rabbitmq/下的配置文件可以继续使用,新版本在启动服务时,会自动读取原有配置文件。

也可根据实际需求修改,如果没有,也可添加文件:

rabbitmq.config

[
{rabbit, [{log_levels, [{channel, warning}, {connection, warning}, {federation, warning}, {mirroring, warning}]},
{loopback_users, []}
]}
].

enabled_plugins

[rabbitmq_management,rabbitmq_top].

rabbitmq-env.conf

RABBITMQ_LOG_BASE=/db/logs/rabbitmq

使用 rpm -qa |grep erlang 以及 rpm -qa |grep rabbitmq 列出旧的软件名称,然后加入批处理中卸载。

使用 netstat -nltp 找出4369端口的 PID ,加入批处理中 kill

最后执行批处理:

systemctl stop rabbitmq-server

kill -    # erlang 

rpm -e --nodeps erlang-test_server-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-erts-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-mnesia-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-xmerl-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-inets-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-cosEvent-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-edoc-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-tv-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-cosEventDomain-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-eldap-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-ic-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-eunit-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-webtool-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-debugger-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-reltool-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-typer-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-crypto-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-syntax_tools-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-runtime_tools-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-asn1-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-orber-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-cosTime-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-ssh-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-os_mon-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-cosTransactions-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-diameter-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-observer-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-megaco-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-dialyzer-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-kernel-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-compiler-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-gs-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-public_key-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-tools-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-cosNotification-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-otp_mibs-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-erl_docgen-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-appmon-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-toolbar-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-jinterface-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-wx-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-common_test-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-stdlib-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-hipe-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-snmp-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-ssl-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-sasl-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-cosProperty-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-pman-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-cosFileTransfer-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-percept-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-erl_interface-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-parsetools-R16B-03.18.el7.x86_64
rpm -e --nodeps erlang-et-R16B-03.18.el7.x86_64 rpm -e --nodeps rabbitmq-server-3.3.-.el7.noarch
cd /opt rpm -Uvh erlang-21.3.8.4-.el7.x86_64.rpm
rpm -Uvh rabbitmq-server-3.7.-.el7.noarch.rpm systemctl start rabbitmq-server rabbitmqctl change_password guest oldpwd
rabbitmq-plugins enable rabbitmq_management

登录相应的 http 地址,使用旧密码登录,检查exchage和queue等。 因为批处理里自动改了旧密码,所以,原有的应用程序可直接访问 rabbitmq-server

Centos6.5 安装 RabbitMQ 3.7.11的更多相关文章

  1. CentOS6.9 安装Oracle 11G 版本11.2.0.1.0

    安装实例与数据库 CentOS6.9 安装Oracle 11G 版本11.2.0.1.0 一.检查系统类别. 查看 系统的类别,这里是 64位系统:[root@localhost ~]# uname ...

  2. CentOS6.8安装RabbitMQ

    1.安装erlang 安装依赖包: yum install xmlto gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC ...

  3. CentOS6.x安装RabbitMQ

    一.安装依赖文件 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ ...

  4. centos6中安装RabbitMQ

    一.安装环境步骤需知 第一步 安装erlang环境 第二步 安装RabbitMQ 二.安装erlang环境 1)安装编译环境,和基础依赖包 yum -y install make gcc gcc-c+ ...

  5. 在Centos6上安装RabbitMQ的过程(有点坑)

    1.安装依赖环境 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ ...

  6. CentOs6.5 安装rabbitmq(转)

    // 安装预环境 yum install gcc gcc-c++ yum install zlib zlin-devel ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 / ...

  7. RabbitMQ系列之【CentOS6.5安装RabbitMQ】

    环境准备 操作系统:CentOS 6.5 Final RabbitMQ: 3.1.5 Python: 2.7.11 ErLang: R16B02 安装预环境(少什么安装什么) yum -y insta ...

  8. RabbitMQ CentOS6.5 安装

    1.安装前准备工作 1)安装RbbitMQ之前先安装ErLang 2)安装ErLang之前需要安装最新的socat 3)安装方式有多种,可以下包安装,可以直接下载rpm文件安装,推荐前者. 4)安装的 ...

  9. rabbitmq 3.6.11 centos 7 安装

    http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm http://www.rabbitmq.co ...

随机推荐

  1. @staticmethod和@classmethod

    一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某些应 ...

  2. C#图像显示实现拖拽、锚点缩放功能【转】

    1.图像拖拽 核心步骤: ①新建Point类型全局变量mouseDownPoint,记录拖拽过程中鼠标位置: ②MouseDown事件记录Cursor位置: ③MouseMove事件计算移动矢量,并更 ...

  3. Netty官网首页(翻译)

    官网:https://netty.io/ Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. Netty是一个NIO客户端服务器框架,可以快速轻松地开发协议 ...

  4. Jekyll博客添加Valine评论

    Jekyll博客添加Valine评论 关于github搭建jekyl博客,在这里不做过多描述,详情参考: 百度搜索关键字:github搭建jekyll博客 官网:https://www.jekyll. ...

  5. 微信小程序实战练习(仿五洲到家微信版)

    github地址(欢迎star):https://github.com/xiaobinwu/dj 版本:0.15.152900(暂未升级原因:升级后需要图片无法本地引用,必须使用image或是远程路径 ...

  6. js检测页面离开

    window.location = 'yjk://app.h5.ihaozhuo.com?page=livetrailer&videoLiveId=' + parseInt(this.Requ ...

  7. Android 音视频深入 十六 FFmpeg 推流手机摄像头,实现直播 (附源码下载)

    源码地址https://github.com/979451341/RtmpCamera/tree/master 配置RMTP服务器,虽然之前说了,这里就直接粘贴过来吧 1.配置RTMP服务器 这个我不 ...

  8. 小白的首个maven web项目Step1软件安装一(jdk的下载配置和eclipse的安装)

    因为电脑太卡加了一个固态硬盘导致系统重装, 把之前的C盘和D盘合并成一个盘,这下之前下的杂七杂八的软件应该差不多都清干净了. 申请这个博客是想记录最近写项目学习的一些事,系统重装之后,发现自己都已经忘 ...

  9. awk使用学习

    awk使用中常用的几个方法: 一.在某一列中查询符合条件的值,并返回该行数据 [root@localhost bus_route]# cat 123.log one two three four1 2 ...

  10. 活代码LINQ——06

    一.模块代码 ' Fig. 9.4: LINQWithArrayOfObjects.vb ' LINQ to Objects using an array of Employee objects. M ...