【ECS生长万物之开源】部署RabbitMQ

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

完成以下操作,通过镜像部署RabbitMQ:

1.单击RabbitMQ环境 ( CentOS7.9 )进入镜像详情页。您可以通过镜像详情页获取镜像信息以及使用指南。

2.单击立即购买

3.在自定义购买页,镜像区域已自动设置为您购买的镜像。根据页面提示,完成配置项并购买ECS实例。配置时需注意:

  • 为实例分配公网IPv4地址。
  • 选择前提条件中已配置的安全组。
  • 其他配置您可以按需选择。具体操作,请参见使用向导创建实例

4.获取ECS实例的公网IP地址。

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择实例与镜像 > 实例
  3. 在顶部菜单栏处,选择目标ECS实例所在地域。
  4. 找到目标ECS实例,在IP 地址列获取该实例的公网IP地址。

5.在浏览器地址栏中输入公网IP地址并回车,下载操作文档。

6.远程连接Linux实例。具体操作,请参见通过密码或密钥认证登录Linux实例

7.初始化RabbitMQ。

cd /root/oneinstack 
./init_rabbitmq.sh

根据提示与操作文档内容,输入对应的信息:

a.输入操作系统主机名并回车。本示例中,使用默认值rabbit

b.输入rabbitmq的用户名并回车。

c.输入rabbitmq的密码并回车。

d.输入y并回车,开始初始化RabbitMQ。

8.通过浏览器访问http://ECS实例的公网IP:15672,进入管理页面。

手动部署RabbitMQ

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

a.创建实例。具体操作,请参见使用向导创建实例。配置资源时您需要注意:

  • 为实例分配公网IPv4地址。
  • 选择前提条件中已配置的安全组。
  • 其他配置您可以按需选择。

b.远程连接实例。具体操作,请参见通过密码或密钥认证登录Linux实例

2.安装erlang。

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

yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel

b.运行以下命令,下载erlang安装包。

wget http://erlang.org/download/otp_src_21.1.tar.gz

c.运行以下命令,解压erlang安装包。

tar -zxvf otp_src_21.1.tar.gz

d.运行以下命令,进入erlang安装包的解压路径,并为erlang创建一个新的目录。

cd otp_src_21.1
mkdir -p /usr/local/erlang

e.依次运行以下命令,编译并安装erlang。

./configure --prefix=/usr/local/erlang
make && make install

f.安装完成后,运行以下命令,为erlang配置环境变量。

echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile

g.运行以下命令,使环境变量立即生效。

source /etc/profile

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

cd
erl -version

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

3.下载并安装RabbitMQ。

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

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

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz

b.运行以下命令,解压RabbitMQ安装包。

tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz

c.解压完成后,运行以下命令,为RabbitMQ配置环境变量。

echo 'export PATH=$PATH:/root/rabbitmq_server-3.7.8/sbin' >> /etc/profile

d.运行以下命令,使环境变量立即生效。

source /etc/profile

4.配置RabbitMQ。

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

rabbitmq-server -detached


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

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

rabbitmq-plugins enable rabbitmq_management

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

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

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

rabbitmqctl delete_user guest

d.创建RabbitMQ管理员用户。

i) 运行以下命令,创建一个新用户。

rabbitmqctl add_user <用户名> <密码>

其中,<用户名>和<密码>为您自定义的信息。

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

rabbitmqctl set_user_tags <用户名> administrator

iii) 运行以下命令,赋予新创建的用户所有权限。

rabbitmqctl set_permissions -p / <用户名> ".*" ".*" ".*"

5.在本地主机中,使用浏览器访问Linux实例的公网IP:15672

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


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

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

通过云助手设置RabbitMQ开机自启动

1.配置RabbitMQ的rabbitmq-server文件。

a.运行以下命令,编辑rabbitmq-server文件。

vim /root/rabbitmq_server-3.7.8/sbin/rabbitmq-server

b.按下shift+:组合键,然后输入set nu查看文件的行号。

c.按下shift+:组合键,然后输入189跳转至189行。

d.按下i键,进入编辑模式。

  在189行新增以下内容:

export PATH=$PATH:/usr/local/erlang/bin
export HOME=/root/rabbitmq_server-3.7.8/

  配置完成后,如下图所示。

e.按下Esc键,然后输入:wq并回车,保存退出文件。

2.调用ECS API RunCommand,设置RabbitMQ开机自启动。

调用API的具体操作,请参见快速入门。设置RabbitMQ开机自启动,您必须设置以下参数:

参数 说明 取值或示例值
RegionId ECS实例所在的地域ID。 示例值:cn-hangzhou
Name 云助手命令的名称。 示例值:start-rabbitmq
Type 运维命令的语言类型。 取值:RunShellScript
CommandContent 命令的明文内容。 取值:/root/rabbitmq_server-3.7.8/sbin/rabbitmq-server -detached

说明 该命令用于启动RabbitMQ。

RepeatMode 设置命令执行的方式。 取值:EveryReboot
InstanceId.N 部署RabbitMQ的ECS实例ID。 示例值:i-bp12f1b0i3r7adm3****

调用成功的JSON返回示例值如下所示,后续当您重启ECS实例后,都会触发启动RabbitMQ的云助手命令。

{
  "RequestId": "8B4BFE47-F1E3-48D1-B405-CA783B697046",
  "CommandId": "c-hz01gvo1ri9****",
  "InvokeId": "t-hz01gvo1rig****"
}
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
15天前
|
安全 前端开发 Go
轻松部署翼龙面板社区版:您的游戏服务器管理新体验
翼龙面板(Pterodactyl)社区版正是为此而生,它通过强大的开源技术栈(PHP、React 和 Go)和可靠的安全设计,让游戏服务器管理变得简单而高效。本文将带您通过阿里云计算巢快速部署翼龙面板社区版,尽享流畅的管理体验。
轻松部署翼龙面板社区版:您的游戏服务器管理新体验
|
18天前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
140 17
Spring Boot 两种部署到服务器的方式
|
3月前
|
弹性计算 开发工具 git
2分钟在阿里云ECS控制台部署个人应用(图文示例)
作为一名程序员,我在部署托管于Github/Gitee的代码到阿里云ECS服务器时,经常遇到繁琐的手动配置问题。近期,阿里云ECS控制台推出了一键构建部署功能,简化了这一过程,支持Gitee和GitHub仓库,自动处理git、docker等安装配置,无需手动登录服务器执行命令,大大提升了部署效率。本文将详细介绍该功能的使用方法和适用场景。
2分钟在阿里云ECS控制台部署个人应用(图文示例)
|
2月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
47 6
|
3月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
200 5
|
3月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
3月前
|
运维 安全 Linux
2024 主流的开源服务器面板推荐
随着云计算和虚拟专用服务器(VPS)的普及,服务器面板工具成为了企业和个人管理服务器的得力助手。一个优秀的服务器面板不仅可以简化服务器管理任务,还可以提升工作效率和安全性。本文将为您介绍并测评几款2024年全网热门的服务器面板,包括Websoft9、宝塔、cPanel、1Panel等,帮助您找到最适合自己的管理工具。
2024 主流的开源服务器面板推荐
|
4月前
|
消息中间件 JSON Java
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
267 15
|
4月前
|
消息中间件 安全 Java
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
126 10
|
3月前
|
消息中间件 存储 Kafka
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。

相关产品

  • 云服务器 ECS