云服务器ECS部署RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性、扩展性和高可用性。本文介绍如何通过ECS实例部署RabbitMQ。


前提条件

已创建网络类型为专有网络的安全组,并且在安全组的入方向添加规则并放行80、5672及15672端口,如果您使用SSH远程连接Linux实例,还需要放行22端口。 具体操作,请参见添加安全组规则

背景信息

RabbitMQ使用Erlang语言编写服务器端,并支持多种客户端,如Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP和STOMP,同时也支持AJAX。

您可以通过以下两种方式部署RabbitMQ。

  • 镜像部署:适合新手使用。具体操作,请参见镜像部署RabbitMQ

  • 手动部署:适合对Linux命令有基本了解的用户,能够个性化部署。具体操作,请参见

    手动部署RabbitMQ

    手动部署使用以下操作系统和软件版本:

    • 操作系统:公共镜像CentOS 7.8 64位

    • RabbitMQ版本:3.7.8

    • erlang版本:21.1

    • JDK版本:1.8.0_282

    本文提供的手动部署方式中,RabbitMQ只在当前运行的系统环境下启动,如果您需要设置开机自启动RabbitMQ服务,可以通过云助手实现。具体操作,请参见通过云助手设置RabbitMQ开机自启动

    手动部署RabbitMQ

    1. 创建并远程连接Linux实例。

      1. 创建实例。

        具体操作,请参见使用向导创建实例

        • 为实例分配公网IPv4地址。

        • 选择前提条件中已配置的安全组。

        • 其他配置您可以按需选择。

      2. 远程连接实例。

        具体操作,请参见通过密码或密钥认证登录Linux实例

    2. 安装erlang。

      1. 运行以下命令,安装erlang所需要的依赖包。

        yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
      2. 运行以下命令,下载erlang安装包。

        wget http://erlang.org/download/otp_src_21.1.tar.gz
      3. 运行以下命令,解压erlang安装包。

        tar -zxvf otp_src_21.1.tar.gz
      4. 运行以下命令,进入erlang安装包的解压路径,并为erlang创建一个新的目录。

        cd otp_src_21.1
        mkdir -p /usr/local/erlang
      5. 依次运行以下命令,编译并安装erlang。

        ./configure --prefix=/usr/local/erlang
        make && make install
      6. 安装完成后,运行以下命令,为erlang配置环境变量。

        echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
      7. 运行以下命令,使环境变量立即生效。

        source /etc/profile
      8. 运行以下命令,返回系统的/root目录,然后查看erlang版本,确认是否安装成功。

        cd
        erl -version

        返回如下信息表示erlang已成功安装。

    3. 下载并安装RabbitMQ。

      RabbitMQ对Erlang的版本具有一定限制,更多信息,请参见RabbitMQ Erlang Version Requirements。本示例使用的Erlang为21.1版本,因此选择下载RabbitMQ 3.7.8版本。

      1. 运行以下命令,下载RabbitMQ安装包。

        wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz
      2. 运行以下命令,解压RabbitMQ安装包。

        tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz
      3. 解压完成后,运行以下命令,为RabbitMQ配置环境变量。

        echo 'export PATH=$PATH:/root/rabbitmq_server-3.7.8/sbin' >> /etc/profile
      4. 运行以下命令,使环境变量立即生效。

        source /etc/profile
    4. 配置RabbitMQ。

      1. 运行以下命令,启动RabbitMQ并后台运行。

        rabbitmq-server -detached

        注意 该命令只在当前运行的系统环境下启动RabbitMQ,一旦服务器重启,RabbitMQ服务将不会自动启动。因此,建议您通过阿里云的云助手功能,设置RabbitMQ开机自启动。具体操作,请参见通过云助手设置RabbitMQ开机自启动

      2. 运行以下命令,启动RabbitMQ监控插件。

        rabbitmq-plugins enable rabbitmq_management

        如果您需要关闭RabbitMQ监控插件,可以运行rabbitmq-plugins disable rabbitmq_management

      3. 为保证数据安全,建议您运行以下命令,删除默认用户。

        RabbitMQ默认的账号用户名和密码都是guest

        rabbitmqctl delete_user guest
      4. 创建RabbitMQ管理员用户。

        1. 运行以下命令,创建一个新用户。

          rabbitmqctl add_user <用户名> <密码>

          其中,

          <用户名>

          <密码>

          为您自定义的信息。

        2. 运行以下命令,将创建的新用户设置为管理员。

          rabbitmqctl set_user_tags <用户名> administrator
        3. 运行以下命令,赋予新创建的用户所有权限。

          rabbitmqctl set_permissions -p / <用户名> ".*" ".*" ".*"
    5. 在本地主机中,使用浏览器访问Linux实例的公网IP:15672

      显示如下页面,说明RabbitMQ安装成功。

    6. 输入已创建的RabbitMQ管理员用户名和密码后,单击Login,进入RabbitMQ管理界面。

      RabbitMQ管理界面展示信息如下所示:


卸载rabbitmq

1、卸载rabbitmq相关

卸载前先停止rabbitmq服务

/usr/lib/rabbitmq/bin/rabbitmqctl stop

查看rabbitmq安装的相关列表

yum list | grep rabbitmq

卸载rabbitmq已安装的相关内容

yum -y remove rabbitmq-server.noarch

2、卸载erlang

查看erlang安装的相关列表

yum list | grep erlang

卸载erlang已安装的相关内容

yum -y remove erlang-*
yum remove erlang.x86_64

3、删除有关的所有文件

rm -rf /usr/lib64/erlang 
rm -rf /var/lib/rabbitmq
rm -rf /usr/local/erlang
rm -rf /usr/local/rabbitmq

云服务器ECS部署和卸载RabbitMQ的更多相关文章

  1. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  2. 阿里云服务器ECS部署应用教程

    购买阿里云服务器 大多数云服务器默认安装的语言运行环境版本都很旧了,python用的还是2.7,JDK用的还是1.6的,在ECS云服务器中可以自行安装,包括python3.4之类的. 在次页面购买EC ...

  3. 【阿里云】云服务器 ECS部署网站

    我是广告!!! https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=hgk32vx5 领券更优惠,老板看着来~ 1.服务器 ...

  4. 云服务器 ECS > 建站教程 > 部署 LAMP (CentOS 7.2 ,Apache版本:2.4.23, Mysql 版本:5.7.17 , Php版本:7.0.12)

    云服务器 ECS > 建站教程 > 部署 LAMP (CentOS 7.2) 部署 LAMP (CentOS 7.2) 文档提供方:上海驻云信息科技有限公司    更新时间:2017-06 ...

  5. 阿里云ECS云服务器CentOS部署个人网站

    ping了一下coding pages和阿里云服务器的速度,意外感觉coding的速度反而更快.不过为了折腾,还是把博客迁移到阿里云,跌跌撞撞遇到很多坑,大多是由于对指令不熟悉以及部分教程省略了部分步 ...

  6. 云服务器ECS

    云服务器Elastic Compute Service(ECS)是阿里云提供的一种基础云计算服务.使用云服务器ECS就像使用水.电.煤气等资源一样便捷.高效.您无需提前采购硬件设备,而是根据业务需要, ...

  7. 阿里云产品介绍(一):云服务器ECS

    最近天南海北的跑客户,在沟通过程中,发现很多客户对于阿里云众多的产品颇有种挑花了眼不知如何入手的感觉,就想写一个系列来简单的介绍下. 云计算的概念刚出来的时候,吹的牛皮是可以将成千上万台物理服务器连接 ...

  8. 云服务器 ECS Linux 误删除文件恢复方法介绍

    云服务器 ECS Linux 下,rm -rf  意味着一旦删除的文件是无法挽回的.但如果在没有文件覆盖操作的前提下,可以先尝试相关方式进行文件恢复. 本文对此进行简要说明. https://help ...

  9. 云服务器 ECS Linux 磁盘空间满(含 innode 满)问题排查方法

    问题描述 在云服务器 ECS Linux 系统内创建文件时,出现类似如下空间不足提示: No space left on device … 问题原因 导致该问题的可能原因包括: 磁盘分区空间使用率达到 ...

随机推荐

  1. CTF入门学习3->Web通信基础

    Web安全基础 01 Web通信 这个部分重点介绍浏览器与Web服务器的详细通信过程. 01-00 URL协议 只要上网访问服务器,就离不开URL. URL是什么? URL就是我们在浏览器里输入的站点 ...

  2. python实现高斯图像金字塔

    一,定义 图像金字塔:同一图像的不同分辨率的子图集合,其生成方式有向上取样和向下取样.向下取样是从G0采样形成分辨率较低的G1,G1再采样形成分辨率较低的G2......,就构成了一个金字塔.向下取样 ...

  3. [loj3524]钥匙

    由于到达关系具有传递性,可以考虑不断将若干个可以相互到达的点缩点,并且当两个点只能单向到达时,能到达另一个点的点一定不是最小值 由此,我们来考虑dfs,即不断从一个节点开始,遍历其可以到达的点,当发现 ...

  4. 虚拟机Centos7安装Socks5作为代理服务器

    虚拟机Centos7安装Socks5作为代理服务器 1. 什么是代理服务器 代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到 ...

  5. Java培训班4个月有用吗?

    很多想学Java都会经历这样一个选择,是自学还是报班?自学的话需要一步步摸索,从无到有硬啃下来,时间没保证:可如果报班的话,目前市面上五花八门的培训机构又是鱼龙混杂,并且现在越来越多的培训机构宣称&q ...

  6. JSOI2021 酱油记

    Day -24 - 2021.3.16 终于停课了(bushi)-- 稍微规划了下省选前听课的日程,大约周二(3.16)请一天,周四(3.18)请一天,周五(3.19)请半天?月考正常考,月考完请两周 ...

  7. Codeforces 590E - Birthday(AC 自动机+Dilworth 定理+二分图匹配)

    题面传送门 AC 自动机有时只是辅助建图的工具,真的 首先看到多串问题,果断建出 AC 自动机.设 \(m=\sum|s_i|\). 不难发现子串的包含关系构成了一个偏序集,于是我们考虑转化为图论,若 ...

  8. THUSC2021 & ISIJ2021 游记

    Day -? 4.25 部分摘自日记. 前几天父亲问我 "这个 ISIJ 你要不要报名",我想反正自己 NOIP 和省选那么炸,就当玩玩算了,于是说 "随便吧,那就报呗. ...

  9. Redis队列跟MQ的区别

    Redis队列:Redis队列是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用 ...

  10. R shinydashboard ——2. 结构

    目录 1.Shiny和HTML 2.结构 3. 标题Header 4. 侧边栏Siderbar 5.主体/正文Body box tabBox infoBox valueBox Layouts 1.Sh ...