RocketMQ 在网易云音乐的实践

本文介绍了网易云音乐如何使用和优化RocketMQ以应对千亿级别的日消息量。文章涉及监控完善、业务巡检、消息路由、数据迁移、Flink connector开发以及消费性能优化等方面,阐述了云音乐如何解决流量突刺、消费延迟等问题,提升集群稳定性和消费服务负载的平稳性。
摘要由CSDN通过智能技术生成

本文作者:蒋星韬,网易云音乐服务端开发工程师。

云音乐线上场景众多,比如直播、评论、广告,各个业务线都会有消息场景比如发奖券,也会有延迟消息和事务消息场景,以及大数据做埋点数据、数据清洗、离线处理等。

云音乐线上 RocketMQ topic 为 1 万+/天,QPS 流量峰值为150万/s,日消息量千亿级别。为了支撑庞大的数据规模和场景,除了搭建开源RocketMQ集群,我们也做了监控的完善和工具体验。监控完善主要包括对整个集群的容量、状态、水位进行健康状态的监控,针对消息的发送和消费提供流量、延迟、失败、耗时等监控指标。基于以上监控指标,还需搭建一套业务巡检体系,以实现线上告警。

另外,我们也提供改了一些工具帮助业务方提升使用 RocketMQ 的体验,比如数据迁移和同步消息路由的组件,提供稳定性保障的限流能力、降级能力以及动态参数干预的预案能力。当线上业务方发现消费不符合预期时,需要提供查询帮助其快速定位,以及提供死信处理工具等。

云音乐目前有三个机房,每个机房部署了一套 RocketMQ 集群,除了 Manesrv、 HA 等基础组件,还有自研或开源改造的组件,比如 monitor 组件、告警巡检组件、降级维稳组件等。

每个机房里有一套平台化的管控组件,管控端包含提工单、上下线、查数据、订阅问题,还包括一套消息路平台和数据库。

网易云音乐拥有多个流量入口,不同业务的数据和流量需要做隔离,每个租户下都是一套独立的业务线。而物理隔离成本过高,因此我们实现了逻辑隔离。各个业务之间流量不互通,逻辑上无法相互调用,且租户下所有 topic 名字一致,中台只需要切换租户名,无需改动任何其配置、代码,即可直接上线。

所有 topic 都在一个物理集群内,每个租户有自己的一套逻辑集群,逻辑集群内

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值