摘要:DMS任意时间定时消息能力发布。
本文分享自华为云社区《一文带你认知定时消息发布RocketMQ》,作者: 华为云PaaS服务小智 。
DMS是华为云的分布式消息中间件服务。适用于解决分布式架构中的系统解耦、跨系统跨地域数据流通、分布式事务协调等难题,协助构建优雅的现代化应用架构,提供可兼容 Kafka/RabbitMQ/RocketMQ 开源系统的云服务。
DMS是一个低延迟、弹性高可靠、高吞吐、动态扩展、便捷多样的消息中间件服务。
近期,DMS服务正式上线任意时间定时消息特性,带来了灵活、精确、高性能的消息定时能力支持。
DMS rocketMQ定时消息功能流程图
为什么需要定时消息
随着互联网技术的蓬勃发展,各公司的业务场景变得越来越纷繁复杂。对于精确度、高并发、高可靠的要求也达到了一个前所未有的高度。
在这些复杂的业务场景中,定时调度场景,尽管有着十分庞大和迫切的需求,却缺乏一个“完美”的一站式解决方案。
对于定时消息需求稍低的企业会使用一些消息中间件“残血版”的开源来实现定时调度。有的企业对于定时消息的吞吐量和精确度有着非常高的要求,往往会在消息中间件的基础上自建 Serverless 定时消息中台。如:使用 Amazon SNS 服务实现的 Serverless 定时器
华为云 DMS 定时消息能力的优势
华为云 DMS 上线的定时消息能力在开源消息中间件和各大云厂商提供的定时能力中处于领先地位,能够提供毫秒级精确度、最大长达一年的定时消息能力。对于高度依赖定时消息中台的场景、华为云 DMS 定时消息能够支撑万级吞吐量。后续会上线 Serverless 能力,做到动态伸缩,同时满足低成本和高性能的诉求。
下面介绍一下华为云 DMS 定时消息的功能亮点:
- 任意时间:能够支持 1 年内任意时间的定时消息。
- 高精度:定时精度达到毫秒级(在无堆积情况下)。
- 高性能:接近于普通消息的吞吐量。
- 高可靠:不会丢失定时消息。
- 支持取消:在定时消息未投递前支持取消。
- 可观测性:可查询定时消息。
定时消息最佳实践
在用户发起订单的场景下,需要在一定时间(如 5 分钟)后自动关闭未支付的订单。我们需要一个定时机制按时触发订单关闭的逻辑。此时正式定时消息发挥作用的时刻:在下单时发送一条定时在 5 分钟后投递的定时消息,用它触发关闭订单的逻辑。如果用户支付了订单,可以将之前的定时消息取消。
此外,对于需要大量任务定时调度的场景,可以基于DMS定时消息能力构建一个定时调度中台。依靠DMS定时消息的高吞吐量,可以实现数十万任务并发调度。
除此之外,定时调度还能应用于更多其他场景,如定时提醒、等待重试、事件预订等等。
订单场景流程图未来展望
华为云已经上线分布式消息服务 RocketMQ 版任意时间定时消息特性。点击使用。
华为云 DMS 版本正在快速演进中,后续将引入 Serverless 架构,在高可靠高可用基础上消息服务基础上,提供动态扩缩容能力,从容应对流量洪峰,在流量低谷时缩容。按需计费,动态管理企业业务成本,达到降本增效的效果。