云主机开年特惠28.8元/年,0元秒杀等你来抢!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 天翼云新春焕新季 NEW 云主机开年特惠28.8元/年,0元秒杀等你来抢!
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
  • MCP市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      消息队列RabbitMQ版_相关内容
      • RocketMQ C++ SDK
        收取普通消息 include include include "rocketmq/DefaultMQPushConsumer.h" using namespace rocketmq; class ConcurrentMessageListener : public MessageListenerConcurrently { public: ConsumeStatus consumeMessage(const std::vector &msgs) { for (auto item msgs.begin(); item ! msgs.end(); item++) { std::cout getTopic() getMsgId() setNamesrvAddr("your access point"); consumer>setSessionCredentials("ak", "sk"); ConcurrentMessageListener messageListener new ConcurrentMessageListener(); consumer>subscribe("topicname", "tag"); consumer>registerMessageListener(messageListener); consumer>start(); std::thisthread::sleepfor(std::chrono::seconds(60)); consumer>shutdown(); return 0; } 使用C++客户端收发顺序消息 简介 顺序消息分为两类,全局顺序消息和分区顺序消息,通过队列数区分。 全局顺序: 对于指定的一个 Topic,所有消息的生产和消费需要遵循一定的顺序,消息的消费顺序必须和生产顺序一致,即需要严格的先入先出 FIFO的顺序进行发布和消费。 分区顺序: 对于指定的一个 Topic,其中每一个分区的消息生产与消费是有序的,同一个队列内的消息按照严格的 FIFO 顺序进行发布和订阅。消息投递到哪一个分区由消息的 Sharding Key 来进行区分。在 SDK 中可以通过指定 Sharding Key 和回调函数来控制消息投递到哪个分区。 发送顺序消息 include include include include "rocketmq/DefaultMQProducer.h" using namespace std; using namespace rocketmq; class DefineSelectMessageQueue : public MessageQueueSelector { public: MQMessageQueue select(const std::vector &mqs, const MQMessage &msg, void arg) { //若希望全局有序,请修改对应index int orderId staticcast (arg); int index orderId % mqs.size(); return mqs[index]; } }; int main(){ DefaultMQProducer producer("groupname"); //填写分布式消息服务RocketMQ版的接入点 producer.setNamesrvAddr("your access point"); //填写分布式消息服务RocketMQ版的ak、sk producer.setSessionCredentials("ak", "sk", "channel"); producer.start(); DefineSelectMessageQueue queueSelector new DefineSelectMessageQueue(); int count 64; for (int i 0; i < count; ++i) { MQMessage msg("youtopicname", "TAG", "msg content"); try { SendResult sendResult producer.send(msg, queueSelector, &i, 3, false); std::cout << "SendResult:" << sendResult.getSendStatus() << ", Message ID: " << sendResult.getMsgId() << std::endl; thisthread::sleepfor(chrono::seconds(1)); } catch (MQException e) { std::cout << "ErrorCode: " << e.GetError() << " Exception:" << e.what() << std::endl; } } std::cout << "Send " << count << " messages OK, costs" << std::endl; producer.shutdown(); return 0; }
        来自:
        帮助文档
        分布式消息服务RocketMQ
        SDK参考
        RocketMQ C++ SDK
      • 消息层配置
        配置项 描述 示例 消息队列名称 消息队列自定义标识。 商城北京消息队列 站点 消息队列部署所在站点。 北京站点 产品类型 消息队列技术类型: RocketMQ RocketMQ 实例类型 消息队列产品类型。 云实例 消息队列实例 消息队列对应的云实例ID。 RocketMQ810
        来自:
        帮助文档
        应用高可用
        用户指南
        应用容灾多活
        资源管理
        消息层配置
      • 用户管理
        本节介绍了在RabbitMQ实例中如何创建、修改和删除用户。 背景信息 客户端访问分布式消息服务RabbitMQ 版服务端时,需要传入用户名和密码进行权限认证,认证通过才允许访问服务端。 操作步骤 创建用户 1.登录管理控制台。 2.进入RabbitMQ管理控制台。 3.在实例列表页在操作列,目标实例行点击“管理”。 4.点击“集群管理”后点击“用户”到达用户管理页面,点击“新建”按钮。 5.点击“新建”后出现以下画面,输入用户密码后点击“确定”即可创建。 修改用户 1.在用户管理页面,在目标用户行点击“修改”,即可重置用户密码。 删除用户 1.在用户管理页面,在目标用户行点击“删除”,即可删除用户。 获取用户token 仅云原生引擎支持 (1)登录管理控制台。 (2)进入RabbitMQ管理控制台。 (3)在实例列表页在操作列,目标实例行点击“管理”。 (4)点击“集群管理”后点击“用户”到达用户管理页面,点击“Token”按钮。 在RabbitMQ中,获取用户令牌(token)的作用如下: 认证和授权:用户令牌用于认证和授权用户对RabbitMQ的访问权限。通过获取有效的用户令牌,可以验证用户的身份,并根据其权限配置来限制或授予其对虚拟主机、队列、交换机等资源的访问权限。 安全性:通过使用用户令牌进行认证,可以增加RabbitMQ系统的安全性。只有具有有效令牌的用户才能访问和执行相应的操作,从而减少了未经授权的访问和潜在的安全风险。 资源管理:用户令牌可以用于管理和限制用户对RabbitMQ资源的使用。通过为每个用户分配独立的令牌,可以控制其对虚拟主机、队列、交换机等资源的使用情况,避免资源滥用或过度消耗。 追踪和审计:通过用户令牌,可以追踪和记录用户对RabbitMQ的操作和访问历史。这对于安全审计、故障排查和性能优化等方面非常有用,可以帮助管理员了解系统的使用情况和问题定位。 总之,获取用户令牌是为了实现认证、授权和安全性,以及对RabbitMQ资源的管理和追踪。通过令牌,可以确保只有经过授权的用户才能访问和操作RabbitMQ,提高系统的安全性和可管理性。
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        用户指南
        用户管理
      • 单一活跃消费者
        介绍分布式消息服务RabbitMQ单一活跃消费者功能。 使用场景 在默认direct模式下, 多个消费者订阅一个queue,消息会轮流发送至每个消费者。单一消费者模式下,消息只由一个消费者消费,除非该改消费者出现异常。由此可以保证消息消费的有序性。 使用示例 以下为java客户端示例,通过在声明队列时配置xsingleactiveconsumer参数实现单一活跃消费者。 Map arguments newHashMap(); arguments.put("xsingleactiveconsumer", true); channel.queueDeclare("testqueue", false, false, false, arguments);
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        用户指南
        高级特性
        单一活跃消费者
      • 管理死信队列
        导出死信消息 1. 登录分布式消息服务RocketMQ控制台。 2. 单击RocketMQ实例的名称,进入实例详情页面。 3. 在左侧导航栏,单击“死信队列”,进入“死信队列”页面。 4. 在待导出的死信消息所在行,单击“导出消息”。 导出JSON格式的文件。 说明:如果需要批量导出死信消息,勾选待导出的多条死信消息,单击“批量导出消息”。 导出的消息字段说明如表1所示。 表1 消息字段说明 消息字段 字段说明 msgid 消息ID。 instanceid 实例ID。 topic Topic名称。 storetimestamp 存储消息的时间。 borntimestamp 产生消息的时间。 reconsumetimes 重试次数。 body 消息体。 bodycrc 消息体校验和。 storesize 存储大小。 propertylist 消息属性列表。lname:属性名称。lvalue:属性值。 bornhost 产生消息的主机IP。 storehost 存储消息的主机IP。 queueid 队列ID。 queueoffset 在队列中的偏移量。 重新投递死信消息 死信消息由于某些原因无法正常被消费者消费,请排查相关原因并解决,然后在控制台重新投递死信消息给消费者消费。 1. 登录分布式消息服务RocketMQ控制台。 2. 单击RocketMQ实例的名称,进入实例详情页面。 3. 在左侧导航栏,单击“死信队列”,进入“死信队列”页面。 4. 选择以下任意一种方法重新投递死信消息。 在待重新投递的死信消息所在行,单击“重投”。 如需批量重新投递死信消息,勾选待重新投递的死信消息,单击“批量重投”。 须知: 死信消息重新投递成功后,此死信消息依然存在死信队列中,不会被删除。避免多次重复投递,造成重复消费。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        用户指南
        管理死信队列
      • 产品定义
        开源对比 相较于开源自建RocketMQ,分布式消息服务RocketMQ在自动化部署、运维监控、增强能力、延迟消息/定时消息、ACL访问控制等方面更具优势。更多信息请参见开源对比。 支持的消息类型 分布式消息服务RocketMQ支持的消息类型包括普通消息、顺序消息、事务消息与延时消息。 普通消息:RocketMQ中无特性的消息,普通消息主要包含同步消息和异步消息两种。 顺序消息:指消费消息的顺序要同发送消息的顺序一致,在RocketMQ中,主要有两种有序消息:全局有序消息和局部有序消息(又叫普通有序消息、分区有序消息)。 事务消息:提供类似X/Open XA的分布式事务功能来确保业务发送方和MQ消息的最终一致性,其本质是通过半消息(prepare消息和commit消息)的方式把分布式事务放在MQ端来处理。 延时消息:生产者将消息发送到消息队列RocketMQ服务端,设计消费时延,在预设的时间后才可以被消费者消费。 更多信息请参见功能特性。 功能特性 分布式消息服务RocketMQ的功能特性主要体现在以下几个方面: 访问接口 支持通过API调用,创建队列、查询消息监控指标、查询消息内容等。 队列能力 支持多种消息类型,包括普通队列(高并发场景)、FIFO有序队列(顺序消息场景)、严格有序队列。 消息能力 支持消息过滤、消息复用、消息重试、消息回溯、消息数据主动删除以及消息广播等能力。 安全防护 提供云审计进行租户管理操作的记录。 运维监控 提供主题、订阅组、生产者、消费者、队列的管理;同时支持集群、主题、队列多维度指标监控。 更多信息请参见功能特性。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        产品简介
        产品定义
      • 预取值
        介绍分布式消息服务RabbitMQ预取值功能 使用场景 所谓消息预取机制,它定义了在一个信道上,消费者允许的最大未确认的消息数量。 一旦未确认的消息数量达到了设置的预取值,RabbitMQ就停止传递更多消息,除非至少有一条未完成的消息得到了确认。 如何设置合适的预取值 通常,增加预取将提高向消费者传递消息的速度。虽然自动应答传输消息速率是最佳的,但是,在这种情况下已传递但尚未处理的消息的数量也会增加,从而增加了消费者的 RAM 消耗(随机存取存储器)应该小心使用具有无限预处理的自动确认模式或手动确认模式,消费者消费了大量的消息如果没有确认的话,会导致消费者连接节点的内存消耗变大,所以找到合适的预取值是一个反复试验的过程,不同的负载该值取值也不同 100 到 300 范围内的值通常可提供最佳的吞吐量,并且不会给消费者带来太大的风险。 预取值为 1 是最保守的。当然这将使吞吐量变得很低,特别是消费者连接延迟很严重的情况下,特别是在消费者连接等待时间较长的环境 中。对于大多数应用来说,稍微高一点的值将是最佳的。 设置预取值 设置预取值的java示例代码如下 ConnectionFactory factory new ConnectionFactory(); Connection connection factory.newConnection(); Channel channel connection.createChannel(); channel.basicQos(20, false);
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        用户指南
        高级特性
        预取值
      • 计费样例
        本文介绍分布式消息服务RabbitMQ的计费样例。 计费场景 某用户于2023/03/18 15:30:00在“广州4”区域购买了一个按需计费的RabbitMQ实例,规格配置如下: 实例规格:rabbitmq.2u4g.cluster3 总存储空间:高I/O,300GB 用了一段时间后,用户发现RabbitMQ实例当前规格无法满足业务需要,于2023/03/20 9:00:00升配为rabbitmq.4u8g.cluster3。因为该RabbitMQ实例打算长期使用下去,于2023/03/20 10:30:00将RabbitMQ实例转为包年/包月计费,购买时长为1个月。那么在3~4月份,该RabbitMQ实例总共产生多少费用呢? 计费构成分析 可以将RabbitMQ实例的使用阶段按照计费模式分为两段:在2023/03/18 15:30:00 ~ 2023/03/20 10:30:00期间为按需计费,2023/03/20 10:30:00 ~ 2023/04/20 23:59:59期间为包年/包月计费。 按需计费 在2023/03/18 15:30:00 ~ 2023/03/20 9:00:00期间按照rabbitmq.2u4g.cluster3规格计费,计费时长为41.5小时,费用计算如下: 在2023/03/20 9:00:00 ~ 2023/03/20 10:30:00期间按照rabbitmq.4u8g.cluster3规格计费,计费时长为1.5小时,费用计算如下:
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        计费说明
        计费样例
      • 计费模式概述
        本文主要介绍分布式消息服务RabbitMQ的计费模式概述。 分布式消息服务RabbitMQ提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月 :一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于业务需求量长期稳定的成熟业务。 按需计费 :一种后付费模式,即先使用再付费,按照RabbitMQ实例实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于电商抢购等业务需求量瞬间大幅波动的场景。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算 后付费 按照RabbitMQ实例实际使用时长计费 计费周期 按订单的购买周期计费 秒级计费,按小时结算 适用计费项 实例费用、存储空间费用 实例费用、存储空间费用 变更规格 支持变更实例规格 支持变更实例规格 使用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式 适用于资源需求波动的场景,可以随时开通,随时删除
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        计费说明
        计费模式
        计费模式概述
      • 使用限制
        介绍分布式消息服务RocketMQ功能使用限制。 参数限制 RocketMQ是一个高性能、高可靠、可伸缩的分布式消息队列系统,但也有一些使用限制需要注意。以下是一些常见的RocketMQ使用限制: 限制项 限制说明 topic名字 限制2到64个字符,超过限制会导致创建主题失败,用户创建主题只能包含大小写字母数字以及和符号。 group名字 限制2到64个字符,超过限制会导致创建订阅组失败,用户创建订阅组只能包含大小写字母数字以及和符号。 AccessKey 高级版引擎在角色管理中创建AccessKey只能包含大小写字母数组以及符号,长度限制必须大于6个字符小于64个字符。 SecretKey 高级版引擎角色管理创建SecretKey必须包含大小写字母数字以及以下特殊符号:!@ $%,长度限制必须大于8位小于64个字符。 延时消息的发送时间点 最大支持40天的延时时间点,超过40天将发送失败。 消息大小 普通消息和顺序消息大小限制4MB,延时消息消息大小限制16KB,超过限制会导致消息发送失败。 消息存储时长 消息存储时长限制默认为7天,超过最长存储时间的消息会被删除。 资源配额 限制项 限制说明 单地域实例数 实例总数不超过100个。 单代理TPS 由购买的实例规格决定,具体限制值,请参见实例规格限制。 单代理Topic数量 由购买的实例规格决定,具体限制值,请参见实例规格限制。 单代理消费组数量 由购买的实例规格决定,具体限制值,请参见实例规格限制。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        产品简介
        使用限制
      • API使用说明
        翼云OpenAPI门户提供了产品的API 文档、API调试、SDK中心等。 关于用户如何使用分布式消息服务RabbitMQ产品API的详细介绍,请参见使用API。您可以在OpenAPI门户可以了解到具体的调用前必知、API概览、如何调用API以及具体的API的接口详细说明。 说明 分布式消息服务RabbitMQ提供两种版本接口供用户调用 V3版本:适用于 华东1、华北2、西南1、华南2、上海36、青岛20、长沙42、南昌5、武汉41、杭州7、西南2贵州、太原4、郑州5、西安7、呼和浩特3 资源池。 V2版本:适用于 芜湖2、南京3、上海7、重庆2、乌鲁木齐27、石家庄20、内蒙6、保定、北京5 资源池。部分资源池已不再开放新实例订购,仅存量实例调用。
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        API参考
        API使用说明
      • Trace详情
        Messaging(消息传递)是指在分布式系统中,通过消息传递实现不同组件之间的通信。 System (消息系统):是指消息传递所使用的消息系统,如Apache Kafka、RabbitMQ、ActiveMQ等。它是一个软件系统,用于实现异步消息传递。 Operation (操作):是指对消息执行的操作,包括发送、接收、确认等。它是一个字符串,用于表示当前执行的操作。 DestinationKind (目标类型):是指消息的目标类型,包括队列(Queue)和主题(Topic)两种。队列用于点对点的消息传递,主题用于发布订阅模式的消息传递。它是一个字符串,用于表示当前消息的目的地类型。 目标服务(Target Service)是指客户端需要访问的远程服务。 名称 (Name):是指目标服务的名称,用于唯一标识服务。它是一个字符串,通常由服务提供方指定,并在服务注册中心中注册。 类型 (Type):是指目标服务的类型,用于表示服务的功能类别。例如,Web服务、消息队列服务、数据库服务等。它是一个字符串,通常由服务提供方指定。 实例 (Instance):是指目标服务的实例,用于标识不同的服务实例。在分布式系统中,通常会有多个服务实例提供相同的服务。它是一个字符串,通常由服务注册中心分配。
        来自:
        帮助文档
        应用性能监控 APM
        用户指南
        调用链查询
        Trace详情
      • 名词解释
        本文为您介绍分布式消息服务MQTT的相关术语解释。 实例(Instance) 创建购买消息队列 MQTT 服务的实体单元,包含MQTT Broke和kafka集群节点。 MQTT Broker 消息队列 MQTT 提供的 MQTT 协议交互的服务端节点,用于完成与 MQTT 客户端消息收发和数据存储至消息队列。 MQTT 客户端 用于和 MQTT 服务器交互的移动端节点。 父级 Topic(Parent Topic) MQTT 协议基于 Pub/Sub 模型,因此任何消息都属于一个 Topic。根据 MQTT 协议,Topic 存在多级,定义第一级 Topic 为父级 Topic,需先在控制台创建该父级 Topic。 子级 Topic(Subtopic) MQTT 的二级 Topic,甚至三级 Topic 都是父级 Topic 下的子类。使用时,直接在代码里设置,无需创建。需要注意的是微消息队列 MQTT 限制父级 Topic 和子级 Topic 的总长度为 64 个字符,如果超出长度限制将会导致客户端异常。 Client ID 微消息队列 MQTT 的 Client ID 是每个客户端的唯一标识,要求全局唯一,使用相同的 Client ID 连接消息队列 MQTT服务会被拒绝。 消息队列Kafka MQTT Broker主要承担移动端连接接入、连接管理、数据转发等工作。后端数据持久化和消息存储至kafka消息队列;租户后端应用系统可通过kafka分析、处理数据并下发指令。 终端连接地址 即MQTT Broker端接入地址,设备端使用。 服务端连接地址 即kakfa集群连接地址,云端应用服务使用。 订阅关系 终端设备每订阅一个主题即一个订阅关系。
        来自:
        帮助文档
        分布式消息服务MQTT
        产品介绍
        名词解释
      • 查看Topic
        Topic详情 展示当前Topic的统计指标、队列分布信息、消费组、生产组的情况。 1、队列信息 2、消费组 标识正在连接该Topic的消费组列表。 消费方式分为两种: CONSUMEPASSIVELY为push消费模式。 CONSUMEACTIVELY为pull消费模式。 路由 展示Topic的队列分布情况,队列分布在哪些broker上。 RocketMQ的队列分布情况是根据Broker的配置和主题的配置来确定的。在RocketMQ中,每个主题可以有多个队列,每个队列可以有多个Broker来提供服务。 队列的分布情况可以通过以下几个因素来确定: Broker的配置:在RocketMQ中,每个Broker都有一个唯一的名称,可以通过名称来识别和配置Broker。当创建主题时,可以指定消息队列的数量和分布策略。分布策略可以是固定的,也可以是根据一定规则动态分配的。 主题的配置:在创建主题时,可以指定队列的数量和分布策略。分布策略可以是按照固定数量进行分配,也可以是根据一定规则进行动态分配。例如,可以将消息队列均匀地分布在不同的Broker上,也可以根据消息的属性将消息路由到不同的队列。 负载均衡策略:RocketMQ提供了多种负载均衡策略,用于在Broker集群中均衡地分布消息队列。负载均衡策略可以根据Broker的负载情况、网络延迟等因素来进行动态调整,以确保消息队列的均衡分布和高效处理。 总的来说,RocketMQ的队列分布情况是根据Broker的配置、主题的配置和负载均衡策略来确定的。通过合理的配置和使用负载均衡策略,可以实现消息队列的均衡分布和高效处理,提高消息系统的性能和可扩展性。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        用户指南
        Topic管理
        查看Topic
      • 代码示例
        本节介绍了RabbitMQ接入的代码示例。 安全接入点(PLAIN、AMQPLAIN授权机制) java import com.rabbitmq.client.; import java.io.IOException; public class RabbitmqAmqpDemo { public static void main(String[] args) throws Exception { String host "192.168.0.0"; //安全接入点ip Integer port 5672; //安全接入点port String username "xxx"; //集群管理用户列表的用户名 String password "xxx"; //集群管理用户列表的密码 String vhost "/"; String exchangeName "extest"; String queueName "qutest"; ConnectionFactory connectionFactory new ConnectionFactory(); connectionFactory.setHost(host); connectionFactory.setPort(port); connectionFactory.setUsername(username); connectionFactory.setPassword(password); connectionFactory.setVirtualHost(vhost); Connection connection connectionFactory.newConnection(); Channel channel connection.createChannel(); channel.exchangeDeclare(exchangeName, BuiltinExchangeType.DIRECT, true); channel.queueDeclare(queueName, true, false, false, null); channel.queueBind(queueName, exchangeName, "test"); String message "Hello Aop"; for (int i 0; i < 10; i++) { channel.basicPublish(exchangeName, "test", null, message.getBytes()); System.out.println("消息发送成功"); } Channel consumeChannel connection.createChannel(); Consumer consumer new DefaultConsumer(consumeChannel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String messageGet new String(body, "UTF8"); if (messageGet.equals(message)) { System.out.println("消息消费成功"); } } }; consumeChannel.setDefaultConsumer(consumer); consumeChannel.basicConsume(queueName, false, consumer); Thread.sleep(10000); } } SSL接入点(EXTERNAL授权机制) java import com.rabbitmq.client.; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManagerFactory; import java.io.FileInputStream; import java.io.IOException; import java.security.KeyStore; public class RabbitmqExternalDemo { public static void main(String[] args) throws Exception { String host "192.168.0.0"; //SSL接入点ip int port 5671; //SSL接入点port //以下2个ssl文件可通过控制台获取安装包, 具体的获取方式可以查看2.2.1接入步骤的第二小节 String ksFile "D:tmpsslclientrabbitmqkey.p12"; String tksFile "D:tmpssltruststore"; String vhost "/"; String exchangeName "extest"; String queueName "qutest"; char[] keyPassphrase "W3zT98Zz9Io".toCharArray(); KeyStore ks KeyStore.getInstance("PKCS12"); ks.load(new FileInputStream(ksFile), keyPassphrase); KeyManagerFactory kmf KeyManagerFactory.getInstance("SunX509"); kmf.init(ks, keyPassphrase); char[] trustPassphrase null; trustPassphrase "W3zT98Zz9Io".toCharArray(); KeyStore tks KeyStore.getInstance("JKS"); tks.load(new FileInputStream(tksFile), trustPassphrase); TrustManagerFactory tmf TrustManagerFactory.getInstance("SunX509"); tmf.init(tks); SSLContext c SSLContext.getInstance("tlsv1.2"); c.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); ConnectionFactory connectionFactory new ConnectionFactory(); connectionFactory.setHost(host); connectionFactory.setPort(port); connectionFactory.setVirtualHost(vhost); connectionFactory.setSaslConfig(DefaultSaslConfig.EXTERNAL); connectionFactory.useSslProtocol(c); Connection connection connectionFactory.newConnection(); Channel channel connection.createChannel(); channel.exchangeDeclare(exchangeName, BuiltinExchangeType.DIRECT, true); channel.queueDeclare(queueName, true, false, false, null); channel.queueBind(queueName, exchangeName, "test"); String message "Hello Aop"; for (int i 0; i < 10; i++) { channel.basicPublish(exchangeName, "test", null, message.getBytes()); System.out.println("消息发送成功"); } Channel consumeChannel connection.createChannel(); Consumer consumer new DefaultConsumer(consumeChannel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { String messageGet new String(body, "UTF8"); if (messageGet.equals(message)) { System.out.println("消息消费成功"); } } }; consumeChannel.setDefaultConsumer(consumer); consumeChannel.basicConsume(queueName, false, consumer); Thread.sleep(10000); } }
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        最佳实践
        RabbitMQ接入
        代码示例
      • 使用RabbitMQ触发器
        本章介绍函数工作流如何使用RabbitMQ触发器。 前提条件 已经创建函数。 创建RabbitMQ触发器,必须开启函数工作流VPC访问。 已经创建RabbitMQ实例。 确认实例安全组规则是否配置正确。 在RabbitMQ实例详情页面的“基本信息 > 网络”,单击安全组名称,跳转到安全组页面。 选择“入方向规则”,查看安全组入方向规则。 实例未开启SSL开关 如果是VPC内访问,实例安全组入方向规则,需要允许端口5672的访问。 如果是公网访问,需要允许端口15672的访问。 实例已开启SSL开关 如果是VPC内访问,实例安全组入方向规则,需要允许端口5671的访问。 如果是公网访问,需要运行端口15671的访问。 创建RabbitMQ触发器 1. 登录函数工作流控制台,在左侧的导航栏选择“函数 > 函数列表”。 2. 选择待配置的函数,单击进入函数详情页。 3. 选择“设置 > 触发器”,单击“创建触发器”,弹出“创建触发器”对话框。 4. 设置以下信息。 触发器类型:选择“分布式消息服务RabbitMQ版 (RABBITMQ)”。 实例:选择已创建RabbitMQ实例。 交换机名称:填写用户需要使用的交换机名称。 密码:填写创建RabbitMQ实例的密码。 虚拟机名称:填写用户自定义的vhost。 批处理大小:每次从Topic消费的消息数量。 5. 单击“确定”,完成RabbitMQ触发器的创建。 说明 开启函数流VPC访问后,需要在RabbitMQ服务安全组配置对应子网的权限。
        来自:
        帮助文档
        函数工作流
        用户指南
        配置触发器
        使用RabbitMQ触发器
      • .net
        消费消息 plaintext using System; using System.Collections.Immutable; using System.Drawing; using Rabbit.Common.Data.Trades; using Rabbit.Common.Display; using RabbitMQ.Client; using RabbitMQ.Client.Events; namespace Rabbit.Example4.Consumer { internal sealed class Program { private static void Main() { var connectionFactory new ConnectionFactory { HostName "YOUR HOST IP", UserName "YOUR USER", Password "YOUR PASSWORD", Port 5672 }; using var connection connectionFactory.CreateConnection(); using var channel connection.CreateModel(); const string ExchangeName "dotnetexchange"; const string QueueName "dotnetqueue"; channel.ExchangeDeclare( exchange: ExchangeName, type: ExchangeType.Direct, durable: false, autoDelete: false, arguments: ImmutableDictionary .Empty); var queue channel.QueueDeclare( queue: QueueName, durable: false, exclusive: false, autoDelete: false, arguments: ImmutableDictionary .Empty); channel.QueueBind( queue: queue.QueueName, exchange: ExchangeName, routingKey: QueueName); var consumer new EventingBasicConsumer(channel); consumer.Received + (sender, eventArgs) > { var messageBody eventArgs.Body.ToArray(); var trade Trade.FromBytes(messageBody); DisplayInfo .For(trade) .SetExchange(eventArgs.Exchange) .SetQueue(queue.QueueName) .SetRoutingKey(eventArgs.RoutingKey) .SetVirtualHost(connectionFactory.VirtualHost) .Display(Color.Yellow); channel.BasicAck(eventArgs.DeliveryTag, multiple: false); }; channel.BasicConsume( queue: queue.QueueName, autoAck: false, consumer: consumer); Console.ReadLine(); } } } ssl生产消息 plaintext using System.Collections.Generic; using System.Collections.Immutable; using System.Drawing; using System.Threading.Tasks; using Rabbit.Common.Data.Trades; using Rabbit.Common.Display; using RabbitMQ.Client; namespace Rabbit.dotnet.Producer { internal sealed class Program { private static async Task Main() { var connectionFactory new ConnectionFactory { HostName "YOUR HOST IP", UserName "YOUR USERNAME", Password "YOUR PASSWORD", Port 5671 }; connectionFactory.AuthMechanisms new List () { new ExternalMechanismFactory() }; connectionFactory.Ssl.CertPath @"D:tmphzmqtest0520rabbitmqsslclientclientrabbitmqkey.p12"; // Ssl.CertPassphrase为固定参数,无需修改 connectionFactory.Ssl.CertPassphrase "YOUR PASSPHRASE"; connectionFactory.Ssl.Enabled true; connectionFactory.Ssl.CertificateValidationCallback (, , , ) > { return true; }; using var connection connectionFactory.CreateConnection(); using var channel connection.CreateModel(); const string ExchangeName "dotnetexchange"; const string QueueName "dotnetqueue"; channel.ExchangeDeclare( exchange: ExchangeName, type: ExchangeType.Direct, durable: false, autoDelete: false, arguments: ImmutableDictionary .Empty); var queue channel.QueueDeclare( queue: QueueName, durable: false, exclusive: false, autoDelete: false, arguments: ImmutableDictionary .Empty); channel.QueueBind( queue: queue.QueueName, exchange: ExchangeName, routingKey: QueueName, arguments: ImmutableDictionary .Empty); while (true) { var trade TradeData.GetFakeTrade(); string routingKey QueueName; channel.BasicPublish( exchange: ExchangeName, routingKey: routingKey, body: trade.ToBytes() ); DisplayInfo .For(trade) .SetExchange(ExchangeName) .SetRoutingKey(routingKey) .SetVirtualHost(connectionFactory.VirtualHost) .Display(Color.Cyan); await Task.Delay(millisecondsDelay: 1000); } } } }
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        开发指南
        .net
      • 步骤一:准备环境
        本文主要介绍分布式消息服务RabbitMQ的准备环境。 虚拟私有云 虚拟私有云(Virtual Private Cloud,以下简称VPC)为RabbitMQ专享版实例提供一个隔离的、用户自主配置和管理的虚拟网络环境。 1. 在创建RabbitMQ专享版实例前,确保已存在可用的虚拟私有云和子网。 创建方法,请参考创建虚拟私有云和子网。如果您已有虚拟私有云和子网,可重复使用,不需要多次创建。 在创建VPC和子网时应注意如下要求: 创建的VPC与使用的RabbitMQ服务应在相同的区域。 创建VPC和子网时,如无特殊需求,配置参数使用默认配置即可。 2. 在创建RabbitMQ专享版实例前,确保已存在可用的安全组。 创建方法,请参考创建安全组。如果您已有安全组,可重复使用,不需要多次创建。 使用RabbitMQ实例前,添加表1所示安全组规则,其他规则请根据实际需要添加。 表1 安全组规则 方向 协议 端口 源地址 说明 入方向 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加密) 说明 创建安全组后,系统默认添加入方向“允许安全组内的弹性云主机彼此通信”规则和出方向“放通全部流量”规则,此时使用内网通过同一个VPC访问RabbitMQ实例,无需添加上表中的规则。
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        快速入门
        步骤一:准备环境
      • 删除Vhost
        本章节主要介绍如何删除Vhost。 操作场景 本章节主要介绍删除Vhost的操作,有以下几种方式,您可以根据实际情况选择任意一种方式: 方式一:在控制台删除 方式二:使用RabbitMQ WebUI删除 方式三:调用API删除 方式一:在控制台删除 步骤 1 登录管理控制台。 步骤 2 在管理控制台右上角单击,选择区域。 说明 此处请选择RabbitMQ实例所在的区域。 步骤 3 在管理控制台左上角单击,选择“企业中间件”>“分布式消息服务”>“RabbitMQ专享版”,进入分布式消息服务RabbitMQ专享版页面。 步骤 4 单击实例名称,进入实例详情页面。 步骤 5 在左侧导航栏选择“Vhost列表”,进入Vhost列表页面。 步骤 6 通过以下任意一种方法,删除Vhost。 勾选Vhost名称左侧的方框,可选一个或多个,单击信息栏左上侧的“删除Vhost”。 在待删除的Vhost所在行,单击“删除”。 步骤 7 在弹出的确认删除对话框中,单击“是”。 方式二:使用RabbitMQ WebUI删除 步骤 1 登录RabbitMQ WebUI。 步骤 2 在顶部导航栏选择“Admin”,进入Admin页面。 步骤 3 在右侧导航栏选择“Virtual Hosts”,进入Virtual Hosts页面。 图1 Virtual Hosts页面 步骤 4 单击待删除的Vhost名称,进入Vhost详情页。 图2 待删除的Vhost 步骤 5 在“Delete this vhost”区域,单击“Delete this virtual host”,弹出确认删除对话框。 图3 删除Vhost 步骤 6 单击“确定”,完成Vhost的删除。
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        用户指南
        Vhost管理
        删除Vhost
      • 名词解释
        有序消息 消费消息的顺序要同发送消息的顺序一致,在RocketMQ中,主要有两种有序消息。 普通有序消息 有序消息的一种,在正常情况下可以保证完全的顺序消息,但是一旦发生通信异常,Broker重启,由于队列总数发生变化,哈希取模后定位的队列会变化,产生短暂的消息顺序不一致。如果业务能容忍在集群异常情况(如某个Broker宕机或者重启)下,消息短暂的乱序,使用普通顺序方式比较合适。 严格有序消息 有序消息的一种。无论正常异常情况都能保证顺序,但是牺牲了分布式Failover特性,即Broker集群中只要有一台机器不可用,则整个集群都不可用(或者影响hash值对应队列的使用),服务可用性大大降低。如果服务器部署为同步双写模式,此缺陷可通过备机自动切换为主避免,不过仍然会存在几分钟的服务不可用。若业务能容忍短暂乱序,推荐普通有序消费。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        产品简介
        名词解释
      • 相关术语解释
        本章节介绍了分布式消息服务RocketMQ的相关术语解释。 主题(Topic) 消息关联的基础逻辑单元。消息生产与消费时的基础单位。 队列(Queue) 一个主题由多个队列组成。队列数越大消费的并发度越大。 生产者(Producer) 消息写入的触发者,负责将消息推送到服务端。 生产者组(Producer Group) 同一类生产者的集合,这类生产者发送同一类消息且发送逻辑一致。 消费者(Consumer) 接收消息的对象,负责从服务端获取消息。 消费组(Consumer Group) 多个消费者组成同一个消费组,同一消费组内的消费者具有相同的消费属性。 代理(Broker) 一组节点构成的一个业务集群。 NameServer 存储元数据信息的轻量级注册中心。生产者/消费者在生产/消费消息前,需要先从NameServer获取元数据。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        产品简介
        相关术语解释
      • 产品优势
        灵活及时 队列处理能力支持按需自动扩展,及时且方便地完成系统扩展,消息投递时间可至毫秒级,从而保证消息及时性。分布式消息服务RocketMQ具有很高的灵活性,可以满足各种不同的业务需求。主要体现: 支持多种消息模型:RocketMQ支持多种消息模型,包括消息队列模型和发布/订阅模型。在消息队列模型中,消息发送方将消息发送到一个队列,消息接收方从队列中读取消息。这种模型适用于顺序消息和事务性消息等场景。而在发布/订阅模型中,消息发送方将消息发布到一个主题,所有订阅该主题的消费者都会收到消息。这种模型适用于实时通知、数据分发等场景。 支持灵活的消息过滤机制:RocketMQ可以通过对消息的属性进行过滤,只有满足条件的消息才会被消费者接收。这样可以实现消息的动态路由和选择性消费,提升系统的灵活性和效率。 支持消息延迟发送和定时消费:RocketMQ可以设置消息的延迟时间,使消息在指定的时间后才能被消费者接收。这对于实现定时任务和延迟处理非常有用。 良好的可扩展性:RocketMQ采用了分布式架构,并且支持主从复制和消息分区机制。可以根据业务需求,动态扩展消息生产者、消息消费者和消息存储节点的数量,以满足大规模消息处理和高并发访问的要求。 高可靠 集群节点采用主备模式,具有主备故障自动切换功能;并且提供对消息的持久化能力,多副本冗余;提供消息数据自动删除功能。分布式消息服务RocketMQ具有高可靠性的特点,以下是RocketMQ实现高可靠性的关键特性: 主从复制:RocketMQ采用了主从复制的架构,在生产者发送消息时,消息会首先写入主节点,并异步复制到多个从节点。这样即使主节点发生故障,从节点也能够接管并继续提供服务。 可靠消息存储:RocketMQ使用Write Ahead Log (WAL)技术来保证消息的可靠存储。在消息写入之前,会先将消息写入磁盘的顺序文件中,然后再写入内存。当RocketMQ重启时,可以通过检查磁盘上的文件来恢复之前未被消费的消息。 消息可重复存储:RocketMQ使用消息的唯一ID来确保消息的幂等性。如果一条消息因为网络问题或其他原因发送失败,RocketMQ可以根据消息的ID判断是否已经成功发送过,并避免消息的重复发送。 容灾备份:RocketMQ支持Broker集群模式和多数据中心的部署方式,可以将消息数据进行容灾备份。当某个Broker节点发生故障时,其他节点可以继续提供服务,确保系统的可用性。 高可用性设计:RocketMQ采用了多个Broker节点组成的集群,并通过主从复制和故障切换来实现高可用性。当某个Broker节点发生故障时,其他节点会自动接管其工作,保证消息的正常处理。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        产品简介
        产品优势
      • topic、queue的规划
        在RocketMQ中,队列数直接影响到消费者实例数的上限,同一消费组消费者实例数的上限等于队列数,对于集群消费的情况,需考虑队列数的设置。 在RocketMQ中,队列能分布到不同的Broker上,是RocketMQ分布式的基础。Queue分布在Broker中,则能使用Broker的资源,包括存储、IO等,一般情况下,分布在某个Broker上的Queue比例越大,则占用此Broker的资源越多,Topic中的Queue分布到的Broker数量越多,则性能越好、存储越大。若Broker的所在机器性能不同,可以通过调整Queue数量,达到资源调优的目的,在应用设计时,需要充分利用上述特性。 在Push消费模式中,API会默认为每个队列预拉取消息1000条,若队列数过大、或者单条消息包体过大,则需要考虑设置减少预拉数量,防止预拉消息过大导致内存溢出。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        最佳实践
        topic、queue的规划
      • 策略语法
        云服务名称 是否支持条件键 云通信短信 否 弹性文件服务 否 分布式消息服务Kafka 否 账务 是 分布式消息服务RabbitMQ 否 分布式消息服务RocketMQ 否 云硬盘 是 天翼云电脑(政企版) 是 内网DNS 否 CRM业务中台 是 分布式缓存服务Redis版 否 弹性云主机 是 弹性负载均衡 否 镜像服务 是 云监控 否 弹性伸缩服务 否 虚拟私有云 是 物理机 否 云硬盘备份 否 云主机备份 否 服务器安全卫士(原生版) 否 密钥管理 否 云间高速 否 统一身份认证 是 客服工单 是 容器云服务引擎CCSE 是 微服务应用平台MSAP 否 活动与券 是 消息管理 是 Web应用防火墙(原生版) 否 云审计 否 企业组织 是 VPC终端节点 否 NAT网关 是
        来自:
        帮助文档
        统一身份认证(一类节点)
        用户指南
        策略管理
        策略语法
      • Redis使用规范
        规范 规范说明 级别 备注 业务数据分离 防止由于Redis故障或不可用影响所有相关业务收到干扰 建议 业务数据分离,避免多个应用使用一个Redis实例,不相干的业务拆分,公共数据做服务化。 完善redis的容错处理 缓存可能会遇到基础设施的故障或主备切换,应用需要对可能的故障和慢请求做容错处理。 建议 缓存访问失败时,具备降级措施,从DB获取数据;或者具备容灾措施,自动切换到另一个Redis使用。 避免redis内存使用量超过80% 虽然云主机会有一定的内存冗余,但是redis内存过高时,redis全量持久化时引入的COPYONWRITE机制带来额外的内存消耗,再加上大内存带来的内存碎片和云主机相关的管理进程消耗,容易触发操作系统OOM KILL。 强制 建议及时做扩容处理。 防止缓存击穿 防止缓存击穿,推荐搭配本地缓存使用Redis,对于热点数据建立本地缓存。本地缓存数据使用异步方式进行刷新。 建议 就近部署业务 避免网络延迟将极大影响读写性能,如果对于时延较为敏感,请避免使用跨AZ Redis实例。 建议 不当成消息队列 发布订阅场景下,不建议作为消息队列使用。redis的PUB/SUB支持的性能有限。 强制 如果需要消息队列,建议改用kafka或rabbitmq。
        来自:
        帮助文档
        分布式缓存服务Redis版
        最佳实践
        Redis使用规范
      • 使用限制
        本文主要介绍应用性能监控的各语言使用限制。 自研JAVA探针使用限制 类型 名称 版本 工具 JDK jdk8、jdk11、jdk17 通讯协议 httpclient apache httpclient2.0+、apache asynchttpclient1.9+ Java框架 spring 3.1.x~5.0.x Java框架 springboot 1.2.x~1.5.x、2.0.4~2.0.9 Java框架 Dubbo 2.7+ Java框架 gRPC 1.6+ 数据库 MySQL mysqlconnectorjava 5.1.X 数据库 Oracle ojdbc5、ojdbc6、ojdbc14 数据库 druid 1.0 数据库 c3p0 0.9.2+ 数据库 dbcp2 2.0+ 数据库 JDBC java8+ web服务器 Tomcat 7.0.x, 8.5.x, 9.0.x, 10.0.x 消息队列 RabbitMQ springrabbit1.0+、amqpclient 2.7+ 消息队列 Kafka kafkaproducer 0.11+、kakfaconsumer 0.11+、kafkastream 0.11+ NoSQL Redis jedis 1.4+,lettuce 4.0+ NoSQL Mongodb 3.1+ NoSQL ElasticSearch 5.0+ Rest Client Common HTTP java http client java11+、HttpURLConnection java8+ Go使用限制 Opentelemetry支持的框架列表 OpenTelemetry提供了若干半自动埋点插件,支持为常见的框架自动创建Span。
        来自:
        帮助文档
        应用性能监控 APM
        产品介绍
        使用限制
      • 手工部署RabbitMQ(CentOS 7.4)
        本文介绍了如何在天翼云上使用弹性云主机的Linux实例部署RabbitMQ。 本文介绍了如何在天翼云上使用弹性云主机的Linux实例部署RabbitMQ。RabbitMQ是采用Erlang语言实现AMQP(Advanced Message Queuing Protocol,高级消息队列协议)的消息中间件,它最初起源于金融系统,用于在分布式系统中存储转发消息。RabbitMQ凭借其高可靠、易扩展、高可用及丰富的功能特性成为目前非常热门的一款消息中间件。 前提条件 弹性云主机所在安全组添加了如下表所示的安全组规则,具体步骤参见为安全组添加安全组规则。 方向 类型 协议 端口/范围 源地址 入方向 IPv4 TCP 5672 0.0.0.0/0 入方向 IPv4 TCP 15672 0.0.0.0/0 操作步骤 1. 安装相关依赖包和perl。 登录弹性云主机。 执行以下命令,安装相关依赖包。 plaintext yum y install make gcc gccc++ m4 ncursesdevel openssldevel unixODBCdevel 执行如下命令,安装perl。 plaintext yum install perl 2. 安装erlang。 执行如下命令,下载erlang安装包。 plaintext wget 执行如下命令,解压缩安装包。 plaintext tar xzf otpsrc19.3.tar.gz 解压后生成一个“otpsrc19.3”文件夹。 执行如下命令,创建文件夹“erlang”。 plaintext mkdir /usr/local/erlang 执行如下命令,进入解压后生成的文件夹“otpsrc19.3”。 plaintext cd otpsrc19.3 执行如下命令,检查系统是否符合安装要求。 plaintext ./configure prefix/usr/local/erlang withoutjavac 执行如下命令,编译并安装Erlang。 plaintext make && make install 执行如下命令,配置erlang环境变量。 执行如下命令打开配置文件"profile"。 plaintext vi /etc/profile 按i键进入编辑模式。 修改打开的“profile”文件,将如下内容添加到文件末尾。 plaintext export PATH$PATH:/usr/local/erlang/bin 按Esc键退出编辑模式,并输入:wq保存后退出。 执行如下命令,使环境变量生效。 plaintext source /etc/profile 执行如下命令,检查安装结果。 plaintext erl version 回显类似如下信息,说明erlang安装成功。 plaintext [root@ecsrabbitmq ~]
        来自:
        帮助文档
        弹性云主机 ECS
        最佳实践
        搭建网站/应用最佳实践
        手工部署RabbitMQ(CentOS 7.4)
      • RocketMQ .NET SDK
        说明 分布式消息服务RocketMQ兼容了社区版 HTTP SDK,您可以使用社区版 HTTP SDK接入分布式消息服务RocketMQ。 前提条件 1. 下载社区 C SDK到本地并解压。 2. 使用Visual Studio打开sln文件导入工程。 发送普通消息 using System; using Aliyun.MQ; using Aliyun.MQ.Model; namespace MQ.Sample { public class Producer { // 填写分布式消息服务RocketMQ控制台HTTP接入点 private const string endpoint "${HTTPENDPOINT}"; // 填写AccessKey,在管理控制台创建 private const string accessKeyId "${ACCESSKEY}"; // 填写SecretKey 在管理控制台创建 private const string secretAccessKey "${SECRETKEY}"; // 消息所属的Topic,在消息队列RocketMQ版控制台创建。 private const string topicName "${TOPIC}"; // Topic所属实例ID,默认实例为空 private const string instanceId "${INSTANCEID}"; private static MQClient client new Aliyun.MQ.MQClient(accessKeyId, secretAccessKey, endpoint); static MQProducer producer client.GetProducer(instanceId, topicName); static void Main(string[] args) { try { // 循环发送4条消息。 for (int i 0; i messages null; try { messages consumer.ConsumeMessage( 3, // 一次最多消费3条(最多可设置为16条) 3 // 长轮询时间3秒(最多可设置为30秒) ); } catch (Exception exp1) { if (exp1 is MessageNotExistException) { Console.WriteLine(Thread.CurrentThread.Name + " No new message, " + ((MessageNotExistException)exp1).RequestId); continue; } Console.WriteLine(exp1); Thread.Sleep(2000); } if (messages null) { continue; } List handlers new List<>(); Console.WriteLine(Thread.CurrentThread.Name + " Receive Messages:"); // 处理业务逻辑 foreach (Message message in messages) { Console.WriteLine(message); handlers.Add(message.ReceiptHandle); } // Message.nextConsumeTime前若不确认消息消费成功,则消息会重复消费 // 消息句柄有时间戳,同一条消息每次消费拿到的都不一样 try { consumer.AckMessage(handlers); Console.WriteLine("Ack message success:"); foreach (string handle in handlers) { Console.Write("t" + handle); } Console.WriteLine(); } catch (Exception exp2) { // 某些消息的句柄可能超时了会导致确认不成功 if (exp2 is AckMessageException) { AckMessageException ackExp (AckMessageException)exp2; Console.WriteLine("Ack message fail, RequestId:" + ackExp.RequestId); foreach (AckMessageErrorItem errorItem in ackExp.ErrorItems) { Console.WriteLine("tErrorHandle:" + errorItem.ReceiptHandle + ",ErrorCode:" + errorItem.ErrorCode + ",ErrorMsg:" + errorItem.ErrorMessage); } } } } catch (Exception ex) { Console.WriteLine(ex); Thread.Sleep(2000); } } } }}
        来自:
        帮助文档
        分布式消息服务RocketMQ
        SDK参考
        RocketMQ .NET SDK
      • 查询Topic信息
        本章节介绍了如何查询分布式消息服务RocketMQ实例的Topic。 操作场景 Topic创建成功后,查询Topic相关的配置和状态信息。 操作步骤 1. 登录分布式消息服务RocketMQ控制台。 2. 单击RocketMQ实例的名称,进入实例详情页面。 3. 在左侧导航栏,单击“Topic管理”,进入“Topic管理”页面。 4. 单击需要查询的Topic名称,进入Topic详情页面。 在详情页上方可以查看Topic名称、关联代理、读队列个数、写队列个数和权限。 在详情页下方可以查看Topic在每个代理上的队列状态,包括队列ID、最小偏移量、最大偏移量和消息更新时间。还可以查看消费组消费此Topic的情况,包括消费组名称、最大重试次数和广播消费。 图 Topic详情
        来自:
        帮助文档
        分布式消息服务RocketMQ
        用户指南
        Topic管理
        查询Topic信息
      • 系统策略
        云服务名称 作用范围 系统策略名称 系统策略描述 分布式消息服务Kafka 全局 KAFKA viewer 只读用户 分布式消息服务Kafka 全局 KAFKA user 管理员 分布式消息服务Kafka 全局 KAFKA admin 超级管理员 分布式消息服务RabbitMQ 全局 AMQP viewer 只读用户 分布式消息服务RabbitMQ 资源池 AMQP user 管理员 分布式消息服务RabbitMQ 全局 AMQP admin 超级管理员 分布式消息服务RabbitMQ 全局 RabbitMQ4.0只读管理员 4.0只读管理员 分布式消息服务RabbitMQ 全局 RabbitMQ4.0超级管理员 4.0超级管理员 分布式消息服务RabbitMQ 全局 RabbitMQ4.0普通管理员 4.0普通管理员 分布式消息服务RocketMQ 全局 MQ2 viewer 只读用户 容器云服务引擎CCSE 全局 MQ2 user 管理员 容器云服务引擎CCSE 全局 MQ2 admin 超级管理员 容器云服务引擎CCSE 全局 RocketMQMQ2 viewer 只读访问分布式消息服务RocketMQMQ2的权限 容器云服务引擎CCSE 全局 RocketMQMQ2 admin 分布式消息服务RocketMQMQ2管理权限 容器云服务引擎CCSE 全局 CCSE admin CCSE超级管理员权限 容器云服务引擎CCSE 全局 CCSE user CCSE管理员权限 容器云服务引擎CCSE 全局 CCSE viewer CCSE只读用户权限 微服务应用平台MSAP 全局 MSAP管理员 管理员策略 微服务应用平台MSAP 全局 MSAP普通用户 MSAP普通用户策略
        来自:
        帮助文档
        统一身份认证(一类节点)
        产品概述
        系统策略
      • 查询消息
        查询消息轨迹 1. 登录分布式消息服务RocketMQ控制台。 2. 单击RocketMQ实例的名称,进入实例详情页面。 3. 在左侧导航栏,单击“消息查询”,进入“消息查询”页面。 4. 选择以下任意一种方法,查询消息。 按Topic查询:“Topic”选择待查询消息的Topic名称,“队列”选择待查询消息的队列,“存储时间”选择待查询消息的时间段,单击“查询”。 按Message ID查询:“Topic”选择待查询消息所在的Topic名称,“消息ID”输入待查询消息的Message ID,单击“查询”。 按Message Key查询:“Topic”选择待查询消息所在的Topic名称,“消息ID”输入待查询消息的Message Key,单击“查询”。 5. 在待查询消息所在行,单击“消息轨迹”,查看消息的轨迹,确定是否生产/消费成功。 消息轨迹的参数说明如表1所示。 表1 消息轨迹的参数说明 参数 参数说明 生产者状态 生产者状态如下: 1.发送成功:消息发送成功,服务端已经成功存储消息。 2.提交成功:允许消费者消费此事务消息。 3.回滚:事务消息将被丢弃,不允许消费者消费此事务消息。 4.未知,待确认:事务消息状态暂时无法确定,等待固定时间后,服务端向生产者进行消息回查。 生产耗时 生产者发送消息的耗时。 生产地址 生产者的IP地址和端口号。 消费者状态 消费者状态如下: 1.消费成功消费超时消费异常 2.消费返回NULL消费失败 消费时间 消费消息的时间。 消费耗时 消费者消费消息的耗时。 消费地址 消费者的IP地址和端口号。
        来自:
        帮助文档
        分布式消息服务RocketMQ
        用户指南
        消息查询
        查询消息
      • 【通知】通用型主机规格调整为白名单特性
        分布式消息服务RabbitMQ主机类型通用型规格调整为白名单特性,更多了解请查看计费项产品规格说明。 调整时间 2024年6月25日 影响范围 所有区域 调整影响 新用户默认不开放主机类型通用型规格订购开通,如需要该特性,请联系技术支持开通后使用。 已购买主机类型通用型规格实例的用户,原实例仍可正常使用,续费、扩容等操作不受影响。
        来自:
        帮助文档
        分布式消息服务RabbitMQ
        服务公告
        2024年
        【通知】通用型主机规格调整为白名单特性
      • 1
      • ...
      • 3
      • 4
      • 5
      • 6
      • 7
      • ...
      • 240
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      天翼云新春焕新季

      云主机开年特惠28.8元/年,0元秒杀等你来抢!

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      出海产品促销专区

      爆款云主机低至2折,高性价比,不限新老速来抢购!

      天翼云奖励推广计划

      加入成为云推官,推荐新用户注册下单得现金奖励

      产品推荐

      多活容灾服务

      GPU云主机

      镜像服务 IMS

      天翼云CTyunOS系统

      AI Store

      应用托管

      科研助手

      智算一体机

      人脸检测

      推荐文档

      玩转天翼云⑦:Linux扩展Swap分区的三种方法

      全面了解天翼云⑨:远程桌面无法复制粘贴

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号