云服务器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. Django笔记&教程 2-1 URL与View关系

    Django 自学笔记兼学习教程第2章第1节--URL与View关系 点击查看教程总目录 参考:how-django-processes-a-request 1- Django处理请求(request ...

  2. 【Java】运行时Java对象在内存中是如何存储的?

    翻译自这一篇文章 我们知道函数在内存中实现为一个活动记录的栈.我们也知道Java方法在JVM栈区中实现为一个帧栈而Java对象是在堆区进行分配的. Java对象在堆内存中是怎样的呢?一旦对象保存在内存 ...

  3. vite2 + vite.config.js 比较坑的环境变量,vite2模式的使用

    想在vite.config.js 里面判断一下环境,看看是不是开发环境,查了一下官网(https://cn.vitejs.dev/guide/env-and-mode.html),说是 可以使用 im ...

  4. [hdu6580]Milk

    考虑定义以下dp数组:1.g1[i][j]表示第i行从中间出发向左取j瓶牛奶最少要多久2.g2[i][j]表示第i行从中间出发向右取j瓶牛奶最少要多久3.g3[i][j]表示在g1[i][j]的基础上 ...

  5. [bzoj1691]挑剔的美食家

    考虑将奶牛和牧草放在一起,根据鲜嫩程度排序,那么显然就可以发现一个贪心策略:每一头奶牛一定选择当前剩余的最便宜且符合条件的牧草,然后用一个set维护价格即可 1 #include<bits/st ...

  6. 【状压dp】Hamiton路径

    描述 给定一张 n(n≤20) 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径. Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点 ...

  7. Pollard-Rho 算法

    Pollard-Rho 一种复杂度大概在 $ O(n^{\frac 1 4} \log n) $ 的分解质因数方法. Miller-Rabin 给定一个 $ 10^{18} $ 范围的数,判断质数 由 ...

  8. Codeforces 1500E - Subset Trick(线段树)

    Codeforces 题目传送门 & 洛谷题目传送门 一道线段树的套路题(似乎 ycx 会做这道题?orzorz!!11) 首先考虑什么样的 \(x\) 是"不合适"的,我 ...

  9. WebRTC本地分享屏幕,录制屏幕

    WebRTC有分享屏幕的功能.使用的是getDisplayMedia方法.用户同意分享屏幕后,可以拿到视频流. 再结合MediaRecorder和Blob,把视频流数据存下来,就能得到录制屏幕的视频. ...

  10. CSS上下左右居中对齐

    上下左右居中对齐 display:  inline/inline-block 将父元素(容器)设定 text-align: center: 即可左右置中. display: block 将元素本身的 ...