云服务器内容精选
-
操作步骤 进入购买RabbitMQ实例页面。 选择“计费模式”、“区域”、“项目”和“可用区”。 设置“实例名称”和“企业项目”。 设置实例信息。 版本:RabbitMQ的版本号,当前仅支持RabbitMQ 3.8.35和AMQP-0-9-1。 部署架构:支持“单机”和“集群”。 单机:表示部署一个RabbitMQ代理。 集群:表示部署多个RabbitMQ代理,实现高可靠的消息存储。 代理规格:根据实际情况选择规格。RabbitMQ 3.8.35版本需要设置此参数。 为了保证服务的稳定可靠,RabbitMQ采用了默认的40%高水位配置。当内存占用率到达40%后,可能会触发内存高水位,内存高水位会触发流控,导致生产者发送消息被阻塞。为了避免高水位的产生,请及时消费积压在队列中的消息。 实例规格:根据实际情况选择规格。RabbitMQ AMQP-0-9-1版本需要设置此参数。 代理数量:根据实例情况选择代理个数。RabbitMQ AMQP-0-9-1版本没有此参数。 设置RabbitMQ实例的磁盘类型和储存空间。 RabbitMQ 3.8.35版本:单个代理存储空间,设置RabbitMQ实例单个代理的磁盘类型和储存空间。 RabbitMQ AMQP-0-9-1版本:存储空间,设置RabbitMQ实例所有代理的磁盘类型和存储空间总和。 如何选择磁盘类型请参考磁盘类型及性能介绍。 单机实例的取值范围:100GB~30000GB。 集群实例的取值范围(RabbitMQ 3.8.35版本):代理数*(100GB~30000GB)。 集群实例的取值范围(RabbitMQ AMQP-0-9-1版本):如表1所示。 表1 存储空间范围 型号 存储空间范围(GB) amqp.b2.large.2 200~60000 amqp.b2.large.4 amqp.b2.large.8 amqp.b2.large.12 虚拟私有云:选择已经创建好的虚拟私有云和子网。 虚拟私有云可以为您的RabbitMQ实例构建隔离的、能自主配置和管理的虚拟网络环境。 安全组:选择已经创建好的安全组。 安全组是一组对RabbitMQ实例的访问规则的集合。您可以单击右侧的“管理安全组”,跳转到网络控制台的安全组页面,查看或创建安全组。 设置“SSL”。 客户端连接实例时SSL认证的开关。开启SSL,则 数据加密 传输,安全性更高。 SSL开关在实例创建完成后不支持修改,请明确是否需要开启。 RabbitMQ AMQP-0-9-1版本不支持此参数。 图1 设置实例信息 设置连接RabbitMQ实例的用户名和密码。仅RabbitMQ 3.8.35版本需要设置此参数。 设置实例购买时长。 当选择了“包年/包月”计费模式时,页面才显示“购买时长”参数,您需要根据业务需要选择。 单击“更多配置”,设置更多相关信息。 设置“公网访问”。 您可以选择是否打开公网访问开关。 如果选择了开启,表示访问RabbitMQ实例可以通过弹性IP访问。这时页面会显示“弹性IP地址”,在“弹性IP地址”区域,您可下拉选择已有的弹性IP。另外,您可单击右侧的“创建弹性IP”,跳转到网络控制台的弹性公网IP页面,购买弹性公网IP。 图2 购买RabbitMQ实例时公网访问设置 公网访问与VPC内访问相比,可能存在网络丢包和抖动等情况,且访问时延有所增加,因此建议仅在业务开发测试阶段开启公网访问进行调试。 如果用户在虚拟私有云的服务页面手动解绑定或删除EIP,相应RabbitMQ实例的公网访问功能会自动关闭。 RabbitMQ AMQP-0-9-1版本如果要开启公网访问,需要在弹性负载均衡控制台绑定公网。 设置“标签”。 标签用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 如您的组织已经设定分布式消息服务RabbitMQ版的相关标签策略,则需按照标签策略规则为RabbitMQ实例添加标签。标签如果不符合标签策略的规则,则可能会导致RabbitMQ实例创建失败,请联系组织管理员了解标签策略详情。 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标签键值对。另外,您可以单击右侧的“查看预定义标签”,系统会跳转到标签管理服务页面,查看已经预定义的标签,或者创建新的标签。 您也可以直接在“标签键”和“标签值”中设置标签。 当前每个RabbitMQ实例最多支持设置20个不同标签,标签的命名规格,请参考管理实例标签章节。 设置实例的描述信息。 填写完上述信息后,单击“立即购买”,进入“规格确认”页面。 确认实例信息无误且阅读并同意《华为云用户协议》后,如果“计费模式”选择“包年/包月”,单击“去支付”。根据界面提示信息,支付费用。如果“计费模式”选择“按需付费”,单击“提交”。 在实例列表页面查看实例是否创建成功。 创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。 当实例的“状态”变为“运行中”时,说明实例创建成功。 当实例的“状态”变为“创建失败”,请参考删除实例,删除创建失败的RabbitMQ实例,然后重新购买。如果重新购买仍然失败,请联系客服。
-
操作场景 RabbitMQ实例采用物理隔离的方式部署,租户独占RabbitMQ实例。支持用户自定义规格和自定义特性,您可以根据业务需要定制相应计算能力和存储空间的RabbitMQ实例。 RabbitMQ是一款基于AMQP协议的开源服务,用于在分布式系统中存储转发消息,支持多种语言的客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP、AJAX等。 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层的一个开放标准协议。
-
维度 Key Value rabbitmq_instance_id RabbitMQ实例 rabbitmq_node RabbitMQ实例节点 rabbitmq_queue RabbitMQ实例队列 rabbitmq_vhost RabbitMQ实例Vhost rabbitmq_vhost_exchange RabbitMQ实例Exchange rabbitmq_vhost_queue RabbitMQ实例Queue
-
操作场景 本章节主要介绍清空Queue中所有消息的操作,有以下几种方式,您可以根据实际情况选择任意一种方式: 方法一:在控制台清空Queue的消息 方法二:使用RabbitMQ WebUI清空Queue的消息 清空Queue消息后,Queue中的所有消息会被永久删除,且不可恢复,请谨慎操作。 RabbitMQ 3.8.35版本支持以上两种清空Queue中所有消息的方式,RabbitMQ AMQP-0-9-1版本只支持在控制台清空Queue中所有消息。
-
准备依赖资源 RabbitMQ实例所需资源的具体要求和创建指导如表1所示。 表1 RabbitMQ实例依赖资源 准备资源 要求 创建指导 VPC和子网 RabbitMQ实例可以使用当前账号下已创建的VPC和子网,也可以使用新创建的VPC和子网,还可以使用共享VPC和子网,请根据实际需要进行配置。 共享VPC是基于 资源访问管理 (Resource Access Manager,简称 RAM )服务的机制,VPC的所有者可以将VPC内的子网共享给一个或者多个账号使用。通过共享VPC功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。有关VPC子网共享的更多信息,请参见共享VPC。 在创建VPC和子网时应注意如下要求: 创建的VPC与RabbitMQ实例在相同的区域。 创建VPC和子网时,配置参数建议使用默认配置。 创建VPC和子网的操作指导请参考创建虚拟私有云和子网,若需要在已有VPC上创建和使用新的子网,请参考为虚拟私有云创建新的子网。 安全组 不同的RabbitMQ实例可以重复使用相同的安全组,也可以使用不同的安全组,请根据实际需要进行配置。 使用RabbitMQ实例前,添加表2所示安全组规则,其他规则请根据实际需要添加。 说明: 创建安全组后,系统默认添加入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则,此时使用内网通过同一个VPC访问RabbitMQ实例,无需添加表2或表3的规则。 创建安全组的操作指导请参考创建安全组,为安全组添加规则的操作指导请参考添加安全组规则。 弹性IP地址 在创建弹性IP地址时,应注意如下要求: 创建的弹性IP地址与RabbitMQ实例在相同的区域。 弹性IP地址的数量必须与RabbitMQ实例的代理个数相同。 RabbitMQ控制台无法识别开启IPv6转换功能的弹性IP地址。 创建弹性IP地址的操作指导请参考申请弹性公网IP。 表2 安全组规则(RabbitMQ 3.8.35版本) 方向 协议 端口 源地址 说明 入方向 TCP 5672 0.0.0.0/0 访问RabbitMQ实例(关闭SSL加密) 入方向 TCP 5671 0.0.0.0/0 访问RabbitMQ实例(开启SSL加密) 入方向 TCP 15672 0.0.0.0/0 访问Web界面UI地址(关闭SSL加密) 入方向 TCP 15671 0.0.0.0/0 访问Web界面UI地址(开启SSL加密) 表3 安全组规则(RabbitMQ AMQP-0-9-1版本) 方向 协议 端口 源地址 说明 入方向 TCP 5672 0.0.0.0/0 访问RabbitMQ实例
-
约束与限制 2020年7月1日之前购买的RabbitMQ实例,不支持在控制台开启插件,如果需要开启,请在控制台提工单,技术人员在后台开启插件。 2020年11月14日之前购买的RabbitMQ实例,不支持在控制台开启rabbitmq_consistent_hash_exchange插件,如果需要开启,请在控制台提工单,技术人员在后台开启插件。 开启插件过程中,不会重启实例。 rabbitmq_shovel和rabbitmq_federation插件在特定场景下才支持开启,具体如表2所示。 表2 支持开启插件的场景 实例 rabbitmq_shovel rabbitmq_federation 未开启SSL的单机实例 支持 支持 已开启SSL的单机实例 不支持 不支持 未开启SSL的集群实例 不支持 支持 已开启SSL的集群实例 不支持 不支持
-
方式二:使用RabbitMQ WebUI创建 登录RabbitMQ WebUI。 在顶部导航栏选择“Admin”,进入Admin页面。 在右侧导航栏选择“Virtual Hosts”,进入Virtual Hosts页面。 图4 Virtual Hosts 在“Add a new virtual host”区域,输入Vhost名称,单击“Add virtual host”。 图5 创建Vhost(WebUI) 创建成功后,在“All virtual hosts”区域,显示创建成功的Vhost。 图6 Vhost列表(WebUI)
-
方式三:调用API创建 在Linux中,连接RabbitMQ实例。 执行以下命令,创建Vhost。 curl -i -X PUT http://${USERNAME}:${PASSWORD}@${HOST}:${PORT}/api/vhosts/${VHOST_NAME} 参数说明如下: USERNAME:创建RabbitMQ实例时,设置的用户名。在实例详情页的“连接信息”区域,查看用户名。 PASSWORD:创建RabbitMQ实例时,设置的密码。如果忘记密码,参考重置实例密码,重新设置密码。 HOST:WebUI的地址。在实例详情页的“连接信息”区域,查看Web界面UI地址。 PORT:WebUI的端口号。在实例详情页的“连接信息”区域,查看Web界面UI地址中的端口号。 VHOST_NAME:待创建Vhost的名称。 示例如下: curl -i -X PUT http://root:txxxt@192.168.1.3:15672/api/vhosts/vhost-demo 创建成功后,回显如下所示。 图7 Vhost创建成功
-
操作场景 每个Vhost(Virtual Hosts)相当于一个相对独立的RabbitMQ服务器。Vhost用作逻辑隔离,分别管理Exchange、Queue和Binding,使得应用安全地运行在不同的Vhost上,相互之间不会干扰。一个实例下可以有多个Vhost,一个Vhost里可以有若干个Exchange和Queue。生产者和消费者连接RabbitMQ实例时,需要指定一个Vhost。Vhost的相关介绍,请参考官网文档Virtual Hosts。 本章节主要介绍创建Vhost的操作,有以下几种方式,您可以根据实际情况选择任意一种方式: 方式一:在控制台创建 方式二:使用RabbitMQ WebUI创建 方式三:调用API创建 RabbitMQ 3.8.35版本支持以上三种创建Vhost的方式,RabbitMQ AMQP-0-9-1版本只支持在控制台创建Vhost。 图1 Vhost架构图
-
操作步骤 登录RabbitMQ实例的Web UI。 在菜单栏,选择“Admin”。 图1 选择Admin菜单 (可选)选择右侧导航栏“Virtual Hosts”,然后输入“Name”,单击“Add virtual host”,创建Vhost。 如果您需要设置指定Vhost,请执行本步骤;如果不需要,请直接执行4。 图2 创建Vhost 选择右侧导航栏“Policies”,为Vhost设置规则。 如果为指定的Vhost设置,请在“Virtual Host”选择3创建的Vhost;如果没有,则默认为“/”。 图3 设置Vhost规则 参数解释如下: Name: policy的名称,用户自定义。 Pattern: queue的匹配模式(正则表达式)。 Definition: 镜像定义,包括三个部分ha-sync-mode、ha-mode、ha-params。 ha-sync-mode: 表示镜像队列中消息的同步方式,有效取值范围为:automatic和manual。 automatic:表示自动向master同步数据。 manual:表示手动向master同步数据。 ha-mode: 指明镜像队列的模式,有效取值范围为:all、exactly和nodes。 all:表示在集群所有的节点上进行镜像。 exactly:表示在指定个数的节点上进行镜像,节点的个数由ha-params指定。 nodes:表示在指定的节点上进行镜像,节点名称通过ha-params指定。 ha-params: ha-mode模式需要用到的参数。 Priority: 可选参数,policy的优先级。 单击“Add policy”。 规则添加成功后如下图所示。 图4 Vhost规则
-
使用场景 默认情况下,RabbitMQ生产者生产的消息存储在内存中,当节点宕机或重启时,如何确保消息不丢失呢?RabbitMQ通过持久化机制实现,持久化包括Exchange持久化、Queue持久化和Message持久化。持久化是将内存中的消息写入到磁盘中,以防异常情况导致内存中的消息丢失。但是磁盘的读写速度远不如内存,开启消息持久化后,RabbitMQ的性能会下降。与惰性队列不同,持久化消息会在磁盘和内存中各存储一份,只有在内存空间不够时,才会将内存中的消息删除,存储到磁盘中。 非持久化Queue、Exchange在重启之后会丢失。 非持久化Message在重启之后会丢失(经过持久化Queue/Exchange的消息不会自动变为持久化消息)。 持久化消息在尚未完成持久化时,如果服务器重启,消息会丢失。 RabbitMQ AMQP-0-9-1版本Exchange、Queue、Message默认开启持久化。
-
方式二:使用RabbitMQ WebUI删除 登录RabbitMQ WebUI。 在顶部导航栏选择“Admin”,进入Admin页面。 在右侧导航栏选择“Virtual Hosts”,进入Virtual Hosts页面。 图1 Virtual Hosts页面 单击待删除的Vhost名称,进入Vhost详情页。 图2 待删除的Vhost 在“Delete this vhost”区域,单击“Delete this virtual host”,弹出确认删除对话框。 图3 删除Vhost 单击“确定”,完成Vhost的删除。
-
方式三:调用API删除 在Linux中,连接RabbitMQ实例。 执行以下命令,删除Vhost。 curl -i -X DELETE http://${USERNAME}:${PASSWORD}@${HOST}:${PORT}/api/vhosts/${VHOST_NAME} 参数说明如下: USERNAME:创建RabbitMQ实例时,设置的用户名。在实例详情页的“连接信息”区域,查看用户名。 PASSWORD:创建RabbitMQ实例时,设置的密码。如果忘记密码,参考重置实例密码,重新设置密码。 HOST:WebUI的地址。在实例详情页的“连接信息”区域,查看Web界面UI地址。 PORT:WebUI的端口号。在实例详情页的“连接信息”区域,查看Web界面UI地址中的端口号。 VHOST_NAME:待删除Vhost的名称。 示例如下: curl -i -X DELETE http://root:txxxt@192.168.1.3:15672/api/vhosts/vhost-demo 删除成功后,回显如下所示。 图4 Vhost删除成功
-
方法五:调用API批量删除队列 在RabbitMQ实例未开启SSL时,通过编写Shell脚本循环调用API执行删除命令,实现批量删除队列。 在Linux系统中连接RabbitMQ实例,具体步骤请参考连接未开启SSL的RabbitMQ实例。 创建“delete_queues.sh”脚本文件。 touch delete_queues.sh 执行以下命令,编辑脚本。 vim delete_queues.sh 将以下内容复制到脚本中,其中USERNAME、PASSWORD、HOST和QUEUES_LIST的值,请根据实际情况修改。 #!/usr/bin/env bash USERNAME=root PASSWORD=Zsxxxdx HOST=192.168.0.241 PORT=15672 VHOST='%2F' QUEUES_LIST="test1 test2 test3"; for QUEUE_NAME in $QUEUES_LIST : do curl -i -XDELETE http://$USERNAME:$PASSWORD@$HOST:$PORT/api/queues/$VHOST/$QUEUE_NAME done 参数说明如下: USERNAME:创建实例时设置的用户名。 PASSWORD:创建实例时设置的密码,如果忘记密码,参考重置实例密码,重新设置密码。 HOST:在实例详情页,查看Web界面UI地址。 PORT:在实例详情页,查看Web界面UI端口号。 VHOST:Vhost名称,默认为“/”,在命令中设置为“%2F”。 QUEUES_LIST:待删除队列的名称,队列名称之间使用空格隔开。 保存脚本内容。 对脚本进行授权。 chmod 777 delete_queues.sh 执行脚本。 sh delete_queues.sh 删除成功后,回显如下: 图6 批量删除队列成功 您还可以在WebUI页面的“Queues”页签,查看队列是否成功删除。
-
操作场景 本章节主要介绍删除Queue的操作,有以下几种方式,您可以根据实际情况选择任意一种方式: 方法一:在控制台删除Queue:在RabbitMQ控制台删除队列 方法二:在WebUI页面删除单个队列:在WebUI页面的“Queues”页签中,删除单个队列。 方法三:通过Policy批量删除队列:新增与待删除队列的前缀名称相同、且队列过期时间(TTL)为1毫秒的策略,通过此策略实现批量删除队列。 方法四:调用API删除单个队列:在RabbitMQ实例未开启SSL时,通过调用API删除单个队列。 方法五:调用API批量删除队列:在RabbitMQ实例未开启SSL时,通过编写Shell脚本循环调用API执行删除命令,实现批量删除队列。 删除Queue后,该Queue下的所有配置将会被删除,且无法恢复,请谨慎操作。 RabbitMQ 3.8.35版本支持以上五种删除Queue的方式,RabbitMQ AMQP-0-9-1版本只支持在控制台删除Queue。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格