网易云音乐19年网络重大布局------消息队列改造之路

rocketmq技术内幕:rocketmq架构设计与实现原理_技术分享 | RocketMQ跨集群消息同步(消息路由)的实现与应用... 友情提示:全文4000多文字,预计阅读时间3分钟一、背景RocketMQ作为一款分布式的消息中间件,不管是采用Master/Slave的主从模式,还是采用Dledger的多副本模式,均保证了在同一个地域集群中的可靠性和可用性。但不同RocketMQ集群的Broker之间无法进行数据备份,如果单个资源池中的RocketMQ集群出现机房毁坏、磁盘故障、服务器损毁等非可预见性重大问题时,就会导... 阅读详情

网易云音乐自2013年上线后,业务保持了高速增长。云音乐除了提供好听的音乐外,还留下了我们在乐和人上的美好回忆。通过该文你将了解到:
网易云音乐消息队列改造背景
网易云音乐业务对消息队列要求
网易云音乐消息队列架构设计
网易云音乐消息队列部分高级特性介绍
网易云音乐消息队列落地使用情况
网易云音乐消息队列未公开规划
背景
网易云音乐从13年4月上线以来,业务和用户突飞猛进。 后台技术也从传统的 Tomcat 集群到分布式微服务快速演进和迭代,在业务的不断催生下,诞生了云音乐的 RPC,API 网关和链路跟踪等多种服务,消息队列也从 RabbitMQ 集群迁移到 Kafka集群。 对于消息队列,更多处于使用阶段,也在使用中出现很多问题。 因此我们期望提供一种完全可控,出现问题我们自己能排查,能跟踪,可以根据业务需求做定制改造的消息队列。

调研结果
在这里插入图片描述
RabbitMQ 由于持久化场景下的吞吐量只有2.6万,不能满足我们业务吞吐量的需求,云音乐在 2017 年将消息队列从 RabbitMQ 迁移到 Kafka 也是这个原因,因此不再考虑范围之内。 由于云音乐整体业务的 QPS 较高,因此,ActiveMQ 也不在考虑范围。

这里主要对比 RocketMQ 与 Kafka:
在这里插入图片描述
Kafka 更偏向大数据,日志处理,缺少死信,消费失败自动重试,事物消息,定时消息,消息过滤,广播消息等特性,另外 Kafka 没有同步刷盘。 云音乐的业务更偏向于多 Topic,死信可溯源,消费失败可收敛自动重试,高可用,自动 Failover 等特性。 对于商城和社交业务来说,事物,顺序 Topic 使用会比较多。K afka 和RocketMQ 对比 :

http://jm.taobao.org/2016/03/24/rmq-vs-kafka

经过 RabbitMQ,Kafka 和 RocketMQ( ActiveMQ 性能较差,暂不考虑)的调研和分析后,我们发现 RocketMQ 比较适合云音乐的通用业务,但是开源 RocketMQ 也有一些缺陷,只有我们解决了这些缺陷才能在业务中大规模使用。

开源 RocketMQ 的基本架构如下: (基本介绍参考)
在这里插入图片描述
开源 RocketMQ 主要问题有:

Broker 仅提供了 Master 到 Slave 的复制,没有 Failover 切换的能力。
事物消息不开源(我们开始研发时不开源)。
消息发送消费无追踪(我们开始研发时不开源)。
告警与监控体系没有。
开源控制台不完善。
云音乐业务对消息队列的要求

在这里插入图片描述
我们期望消息队列具备宕机 Failover 能力,根据不同业务场景提供不同 QOS 能力,如商城消息不能丢失,交易事物消息支持,消息发送消费追踪,失败排查等能力。

同时对业务比较关心的发送耗时,消费耗时,消费延迟,消费失败异常等提供监控和告警能力。 同时对运维比较关心的整体运行水位和各项指标提供监控大盘,以及排查发现消息队列自身问题与长期运维能力。

另外云音乐少部分业务是 Nodejs 和 Python 的,我们提供 HTTP 协议接入能力。

架构设计

整体架构如下:
在这里插入图片描述
以开源 RocketMQ 为内核,完全继承开源 RocketMQ 具备的特性。 为满足高可用,我们增加了 failover 组件,对 broker 进行健康检查提供快速切换能力。 其中nginx 的 hotdoc 在开源 RocketMQ 里面是个 jmenv,这一块直接使用。

对于业务开发关心的监控,我们修改客户端,把耗时,异常等数据采用系统消息方式上报,由 Monitor 组件消费消息并写入 ES,并提供控制台查询能力。 同时客户端上报的数据,Alarm 也会消费一份,根据业务配置的监控项检查告警,超出阀值直接发出告警。 另外消息系统也会出现宕机,宕机选主也有一段时间(秒级),虽然客户端有重试能力,但是有些场景不能很好满足。 因此,消息队列提供了降级组件,在系统异常时,客户端会将消息发送本地或者发送到容灾集群,降低系统宕机时对业务的影响。

对于运维比较关心的系统巡检,我们提供系统巡检能力,将系统比较关键的状态定时巡检,异常则快速发出告警。 对于运维比较关心的整体大盘,我们在 Monitor 组件中加入系统数据采集,将数据写入 Influxdb,提供以 Grafana 为前端的 dashboard。 另外我们也提供控制台资源管控能力,将 Topic,ProducerGroup,ConsumerGroup,以及上下游应用关联并管控起来。

各组件交互流程如下:
在这里插入图片描述
NameServer 提供 topic 路由信息发现,配置中心能力。
Broker 提供 topic 消息存储,索引,查询。 同时 Broker 自身提供 HA 需要的复制,角色修改,探活,状态获取等 API。 同时 Broker 定时向所有Nameserver 注册。
Nginx 提供发现 NameServer 能力,由运维将 nameserver 列表填写到hotdoc 中。 避免 NameServer 变更业务重新配置上线。
降级组件提供消息发送失败的处理,在消息发送失败的情况下 client 会将消息发送到容灾集群,由降级组件统一处理保证发送方业务的稳定性。
Failover 组件检查 Broker 状态,Broker 宕机根据 QOS 要求切主。
Console 提供资源管控,消息查询,轨迹跟踪,监控报表,监控告警配置,死信重投等能力。
巡检组件巡检消息队列自身集群所有组件健康与服务状态,有异常提前通知运维和消息队列相关人员。
监控组件提供监控报表数据采集处理,消息队列大盘数据采集处理。
告警组件主要采集告警信息,根据控制台配置的告警阀值和人员信息通知相应业务方。
消息队列大盘提供消息队列集群自身的监控状态,主备复制状态,QPS等集群大盘报表展示。
部分高级特性介绍:

这部分是云音乐根据自己业务的需求,对开源的修改和扩充。 我们对开源 RocketMQ 的改动较多,由于篇幅的关系,这里仅介绍这几个特性,如 HTTP 协议实现和秒级延迟,高可用等这里不做介绍,有兴趣的同学可以交流。

消息轨迹
在这里插入图片描述
这个特性和开源4.4中提供的消息轨迹实现机制一样。 和开源不同的是,云音乐消息队列提供发送消费、事物消息回查轨迹,同时消费失败时,也在轨迹中提供失败异常信息,这样就能够追踪失败原因。

事务消息
在这里插入图片描述
云音乐在做事务消息时,开源事务消息还没出来。 云音乐通过修改存储引擎实现自己的事物消息。 提供事务消息回查按时间收敛能力,回查不到状态超过次数进入死信,同时提供死信告警,事务消息回查死信处理能力。

多环境隔离

云音乐有很多条业务线,每条业务线都有很多个需求在做,同时各个业务线之间的访问都是通过服务化的方式进行。 为提升开发和测试效率,通过对 RPC 流量打标,的方式将流量隔离到相应环境,并一路透传下去。 消息也一样,同一个需求发送的消息需要相应的环境开发,测试,和其他互不影响。 因此云音乐设计实现了消息队列的隔离,加快业务开发测试,预发快速验证能力。

在这里插入图片描述

消费线程池自定义支持
在这里插入图片描述
开源 RocketMQ 消费端仅有一个消费线程池,多个 topic 的消费会互相影响。 另外同一个消费端仅有一个 listener,如果是多个 topic,需要上层业务分发。 云音乐同一个应用都会有多个 topic 消费,有的多达 30+个。 因此优先级高的 topic 需要自定义自己的消费线程池,优先级低的使用公共的。 另外 每个 topic 也要有自己的 listener,这样就不用上层分发。 基于上述要求,我们增加订阅可以同时指定 listener 和 consumeThreadExecutor 的方式。

消费限流与降级
在这里插入图片描述
开源 RocketMQ 并没有提供消费限流能力,基于 Sentinel 的是 pull 模式,而不是 push 模式,不能很好满足云音乐的业务需求。

云音乐的消息消费不少都要写数据库或者访问第三方,这些消费和在线业务都是同一个应用,消息队列自身虽然具备削峰填谷的能力,但是消费端会最大化使用消费线程池,这会对在线业务也产生影响。为保证在线业务优先,需要限制消费的速度,减少瞬时高峰消息消费对在线业务的影响。

这部分可以通过调整消费线程池和消费 qps 来调整。 我们选择了调整消费 qps消费限流的方式,这样能和监控数据对起来并提供控制台动态调整能力,消费线程池调整虽然我们也提供动态调整线程池能力但是并不是线性的,调整起来没有参考,比较困难。 消费限流做在了底层而不是让应用层自己做,和上层的区别时,上层限流了会触发消息消费一次并且失败,底层不会失败也不算消费一次,因为还没投递上层业务。

多机房网络 bug 修复
在这里插入图片描述
云音乐有部分业务部署在建德,需要消费杭州的数据。 这部分消费的机器总是隔三差五报 timeout。 经过排查,发现 client 新建的连接总是在关闭创建循环,非常不稳定,这部分排查 remoting 层的代码发现 client 建立连接存在并发问题,会将建立好的链接关闭。 定位待开源 client 的 remoting bug 后,我们进行了修复。

另外后来几天,曲库的业务同学也报发送 3s 超时,经过仔细排查,发现异常日志和连接建立日志和网络建立并发问题的日志一致,协同业务升级到最新修复的客户端 解决。 业务升级上线后如上所示,发送非常平稳,不再超时。

其他

作为开源的受益者,部分改动我们会提交到 Apache RocketMQ 官方,如消费限流,消费线程池,网络 bug 修复等。

消息队列在云音乐的使用情况
在这里插入图片描述
截止目前为止,基于 RocketMQ 改造实现的消息队列在网易云音乐生产环境已经有 6 个集群。 涉及顺序消息,普通消息,多种高可用高可靠要求。

接入应用 数量200+,每条业务线核心业务都有涉及。 峰值 QPS 已达 30w+,topic 800+。 在测试环境单个集群,由于环境很多,Topic 数量也疯长,单个达到 4000+,未来随着 kafka迁移的更多,Topic 数量还会不断上涨。

从 2018 年 11 月开始,云音乐 kafka 禁止在线业务接入,新的全部使用 RocketMQ,另外 2019 Q1 开始组织协调业务将在线业务以前使用 Kafka 的迁移到 RocketMQ,截止目前,已经迁移 70%+,业务整体稳定性得到极大提升。

随着业务接入 RocketMQ 的增多,也不断催生下游大数据生态的接入和使用。 云音乐大数据主要使用 flink,目前 flink 在运行 job 60+,其中 RocketMQ 消息量 每天达8亿+,这一块未来还有不少增长空间。

未来规划与展望

目前云音乐消息队列的特性已经很多,并且能够很好的满足业务的需求。 从核心歌单、曲库业务到 QPS 很高的 push 业务,但在日志方面还未涉及。

涉及到日志传输开源 RocketMQ 有部分性能问题,需要做优化,目前我们已经完成这部分优化,由于优先级的关系,还没推广到日志传输相关应用。 我们期望云音乐的消息队列能够拓展到日志方面,将消息队列具备的完善监控告警等能力赋能到大数据,NDC 订阅(数据库更新订阅服务)。 同时增加路由能力减少多机房间跨机房访问。

另外,消息队列 RocketMQ 在整个网易除云音乐外并没有其他大产品在使用,未来我们会联合杭研,将消息队列推广到其他大产品线,将云音乐对消息队列的改进和特性普惠到其他大产品。本文章原作者林德智,网易云音乐消息队列负责人。

**

欢迎大家点点关注,后续会持续更新JAVA相关文章

**

Flutter 制作一个抽屉菜单,纯手打“RocketMQ笔记” 其实在APP中,抽屉菜单就是当手指在屏幕横向滑动时候,左边屏幕会滑出或者滑入一个View的东西,就像一个抽屉。下面是我在网上找的一个示例图,和现在正跑在我的模拟器上的目标图。 在Android或者IOS上,要实现这种侧滑抽屉空间,可以使用外部库来达到效果,不过Flutter本身已经给我们提供了 Drawer 这个UI组件,来使你更轻松地达到这个效果。 Drawer及UserAccountsDrawerHeader可用属性 | Drawer属性 | 说明 | | — | — | | e 阅读详情

相关推荐

Minitab正交试验设计:从入门到精通的完整指南

本文提供了一份使用Minitab进行正交试验设计的完整指南。从正交试验省时省力的原理讲起,详细介绍了在Minitab中创建正交表、填入数据、执行分析(包括解读ANOVA和P值)以及寻找最优参数组合的全流程。文章旨在帮助读者,特别是工艺优化和研发人员,快速掌握这一高效工具,从而用最少的实验次数锁定关键影响因素,提升工作效率与成果。

weixin_29201313的博客 463

RocketMQ实战之同城多机房

RocketMQ实战、同城机房负载消费

jannal专栏 1830

《计算机网络》复试问答题总结

DNS 是一个联机分布式数据库系统,负责主机名和 IP 地址之间的转换,需要进行域名查询的机器主动发起域名解析请求,域名服务器则随时准备做出响应。域名服务器的数据库中存放着它所管辖范围的主机名和 IP 地址之间的映射表,域名服务器之间又可以相互联络和协作,以便分布在 Internet 各个域名服务器数据库中的域名都能被有效地搜索,从而实现主机名与 IP 地址的映射。为了提高解析效率,使用了域名缓存技术。在服务器、主机中设置一个专用的内存缓冲区。服务器用来存放近期解析过的域名及其对应的 IP 地址的映射。

weixin_45971154的博客 2029

网易云音乐的消息队列改造之路

图片源自网络十年文案老司机,不如网易评论区。网易云音乐自2013年上线后,业务保持了高速增长。云音乐除了提供好听的音乐外,还留下了我们在乐和人上的美好回忆。本文整理自网易...

哲洛不闹的专栏 1219

XIAO ESP32S3 Sense摄像头与麦克风实战:从硬件连接到AI语音视觉项目

本文详细介绍了如何使用Seeed Studio XIAO ESP32S3 Sense开发板进行AI语音视觉项目开发。从硬件连接到Arduino环境搭建,再到摄像头拍照、视频流传输、麦克风录音等实战操作,最后引导读者探索基于TensorFlow Lite Micro的语音唤醒和SenseCraft AI的图像识别等AI应用,为物联网和边缘AI项目提供了完整的入门指南。

xray4的博客 1023

Android 系统低内存lowmemorykiller关于阈值修改 minfreeAbsKbytes优化

在系统rom定制化开发中,在对于运行内存ram 1G和2G的设备中,对于内存使用高峰期时,minfreeAbsKbytes优化很关键 调整合理的minfree,让内存合理的使用很关键,接下来分析相关功能的实现

安卓兼职framework和app工程师的博客 524

qq音乐网络异常获取音乐失败_QQ音乐无法播放_为什么qq音乐总是提示歌曲无效或网络连接失败?...

为什么我不能在手机上播放QQ音乐?1,Android系统;可以设置为受软件(例如360等)的限制来解锁,并且软件本身缺少数据.2,APP系统;那些未在App Store中下载的软件会在其他一些软件市场中下载,因为有时这些软件市场中的软件数据会丢失,并且下载只是一个空壳.3,APP系统的越狱版本,经常遇到软件无法使用的问题,找到可以购买此手机的地方,让他们代您处理(有时越狱不成功,导致大多数软件限制...

weixin_33235339的博客 1万+

EfficientNet 改进:StripCGLU模块的创新与应用

本文提出了一种改进的EfficientNet-b0模型,核心创新是通过引入StripCGLU模块来提升网络性能。StripCGLU结合了水平/垂直条带卷积和GLU激活机制,具有参数效率高、计算量少的优点。改进策略包括选择性替换部分MBConv为StripCGLU模块(每隔3个块插入),同时保留早期层结构。测试表明该模型适用于移动端视觉任务,在保持效率的同时提升性能。代码实现包含模块定义、模型构建及测试部分,展示了如何通过精心设计的模块改进现有网络架构。

Henry的博客 241

RocketMQ DLedger架构在小米的大规模实践

DLedger架构作为RocketMQ 4.5 推出的全新架构,稳定性有保障。小米的在线核心业务规模巨大,需要很高的可靠性保证,因此选择了DLedger架构。小米希望用数据说话,积极地拥抱社区发展并认为大规模落地DLedger既是挑战,也是机会。那么,我们一起看看RocketMQ DLedger架构在小米的大规模实践。

阿里巴巴云原生的博客 1508

Claude Code 完整详解(Anthropic 官方 AI 编程 Agent)

它是运行在终端(Terminal)的 AI 编程代理,不是普通 IDE 插件;你用自然语言发指令,它自主规划步骤、读写项目文件、执行系统命令、排查 Bug、处理 Git 工作流,是能真正动手干活的 AI 程序员。真正的AI 开发代理人,不止写代码,还能执行开发全流程超长全局上下文,大型项目理解碾压传统补全工具终端原生 + IDE 双接入,开发流程无割裂代码质量、可读性、工程规范性普遍偏高权限安全机制完善,修改前预览、可随时中断回滚。

wange6906的博客 3155

第244篇 视觉SLAM后端之BA优化——Bundle Adjustment的原理

本文介绍了SLAM后端优化中的Bundle Adjustment(BA)技术。BA通过同时优化相机位姿和3D路标点位置,最小化重投影误差,解决前端估计的累积误差问题。文章详细讲解了BA的数学原理,包括目标函数构建、Gauss-Newton法和Levenberg-Marquardt法求解过程,以及利用稀疏性和Schur补加速计算的关键技术。对比了全量BA和增量BA的优缺点,并介绍了Ceres、g2o等工程实现工具。BA作为SLAM后端的核心算法,其理解深度直接影响系统性能优化能力。

郑伟强dev的专栏 346

RocketMQ负载均衡-消费者的负载均衡-指定机房算法

在 RocketMQ 中,消费者负载均衡指的是如何将一个主题(Topic)下的多个消息队列(Message Queue)均匀地分配给同一消费者组中的多个消费者实例。负载均衡可以确保消息处理的并发性和系统资源的有效利用。默认情况下,RocketMQ 提供了多种负载均衡策略,如平均分配策略(AllocateMessageQueueAveragely)和哈希分配策略(AllocateMessageQueueByHash)。

Flying_Fish_roe的博客 1075

控制算法研发工程师(博士)职位深度解析与面试指南

摘要:广东万和新电气股份有限公司招聘控制算法研发工程师(博士),工作地点佛山顺德。职位要求2026届博士学历,电子信息工程或控制科学与工程专业。主要职责包括:1)燃气热水、热泵等系统的电控软件设计与优化;2)开发PID、模糊控制、ADRC、MPC等智能算法,应用于恒温控制、变频调节等场景。重点考察算法研发能力、系统稳定性优化及嵌入式实现经验。该职位提供三年资深工程师培养计划,需具备扎实的控制理论基础和工程实践能力,能够处理非线性系统、多工况自适应等复杂控制问题。

郑伟强dev的专栏 139

rocketmq多机集群部署

准备2个虚拟机,分别部署2NameServer,并在每台机器上。启动mqnamesrv 与 mqbroker 启动流程同上。

weixin_43731014的博客 1791

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

跨IDC的消息集群部署方案

一般的IDC集群部署都是单机房,但是有个很严重的问题,就是异地多活情况下,如何做跨IDC的消息数据同步。 需要明确的是,消息中间件的部署隐含了如下要求: 消息的写入必须是迅速的,但是消息的读取可以有一定延时。在设计上需要牢牢把握住这个宗旨。 假设部署两地四中心。A地 A1,A2机房 B地 B1,B2机房。 以下以rocketmq为例说明部署方式: 1. 对任意的topic,经过中间件修改...

silver9886的专栏 2591

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

跨地域复制终极方案:Apache RocketMQ主从架构与多活部署深度对比

你是否还在为分布式系统的跨地域消息可靠性发愁?当主节点宕机时消息会丢失吗?多地域部署如何平衡性能与一致性?本文将通过架构解析、配置实操和场景对比,帮你彻底掌握RocketMQ跨地域数据复制的两种核心模式,让你的分布式系统轻松应对异地容灾挑战。读完本文你将获得:主从复制与多活架构的选型指南、完整部署步骤、性能优化参数,以及5.0版本自动切换功能的实战配置。 ## 跨地域复制架构概述 Apache...

gitblog_00775的博客 593

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

3K详解RocketMQ 在小米的多场景灾备实践案例

可以看到,Container 作为进程运行,原本的 Broker 被抽象为 Container 的一部分,同样的 3 台机器上我们可以运行 9个 Broker 节点,组成三个 Broker组,每台服务主机上存在一个 Master 节点,使用 Container 对等部署 Broker 之后,每台服务主机都得到了利用,同样的机器数,理论上可以提供三倍的性能。但现实的运维经验告诉我们这是不可能的,硬件故障是非常常见的问题,比如内存故障、磁盘故障等,甚至是机房相关的故障(专线故障、机房拉闸等)。

wdj_yyds的博客 310

【rocketmq】rocket5.2.0安装以及和python和c++通信实现

记录一下rocket5.2.0安装以及和python和c++通信的踩坑史。由于只是简单实现,c++部分的实现可能并不完美。linux:ubuntu20.04 2核2g 有公网iprocketmq:5.2.0 (发现一定要看官网的说明,大多博客都是安装的4.x版本的)c++ :g++4.9.3 调用的库rocket版本:rocketmq-client-cpp-2.2.0python:3.11.5 调用的库rocket版本:rocketmq-client-cpp-2.0.0。

weixin_56760882的博客 2185

什么是异地双活及应用场景

依托于阿里云高速通道专线、事件总线EventBridge和MSHA(Multi-Site High Availability)多活容灾平台,消息队列RocketMQ版提供异地双活功能,通过跨实例间数据的双向同步和业务切流能力,实现业务恢复和故障恢复解耦,保障故障场景下的业务连续性。本文介绍异地双活的概念、应用场景、功能优势、使用限制和计费说明。什么是异地双活多活容灾MSHA是在阿⾥巴巴电商业务环境...

lxw1844912514的博客 1075

高可用角度观察RabbitMQ、Kafka、RocketMQ各自的实现思路

本文从高可用的角度观察一下 RabbitMQ、Kafka、RocketMQ,看看它们各自的实现思路。 1. RabbitMQ RabbitMQ 有 3 种部署模式: 单机模式 普通集群模式 镜像集群模式 单机模式与高可用完全没关系,咱就不说了,直接看看这2种集群模式。 1.1 普通集群模式 某一个 Queue 是在集群中的某一个 Broker 上,各个 Broker 会同步元数据,但不会同步 Queue 的消息数据。 如果某一个 Broker 故障了,其中的 Queue 便无法使用。如果

Java圈全能架构师的博客 372

这 4 种高可用 RocketMQ 集群搭建方案,推荐最后一种。。。

背景 笔者所在的业务线,最初化分为三个服务,由于业务初期业务复杂度相对简单,三个业务服务都能很好的独立完成业务功能。 随着产品迭代,业务功能越来越多后慢慢也要面对高并发、业务解耦、分布式事务等问题,所以经过团队内部讨论,引入 RocketMQ 消息中间件来更好的处理业务。 由于公司内部业务线部署相互独立,我们业务线对引入 RocketMQ 的需求也比较急切,所以打算自己搭建一套高可用的 RocketMQ 集群,同时对于自建的 RocketMQ 集群需要如下特性: 高可用 高并发 可伸缩 海量消息 命名服

架构文摘 1468

因为经费问题不得不使用JUC大法 | 限流降级队列

本文作者:可乐可乐可,作者个人主页:可乐可乐可的个人主页 因为经费问题不得不使用限流降级队列 亲儿子(学校自研的新系统)在进行细致的需求分析时,竟然有经费问题,导致我们使用的邮箱可能挂掉或者被限流,第n次因为经费问题流下泪水233。 不过这也是自己的契机,当初用这个小轮子入了面试官的法眼(感谢面试官给机会,蟹蟹蟹蟹,需要字节跳动内推的可以私聊我哦) (想亲自体验被QQ邮箱封号吗,不会很严重,停一会儿就恢复了,下面是Spring Boot 的一个测试类,可以用他体验一下被封的感觉) import o.

可乐的博客 628

分布式开放消息系统(RocketMQ)的原理与实践

https://www.jianshu.com/p/453c6e7ff81c https://blog.youkuaiyun.com/u010311445/column/info/learningrocketmq https://blog.youkuaiyun.com/zhangll_2008/article/details/78657177 RocketMQ 开发指南

jiaoyajieqianyi的博客 283

同程艺龙:如何基于RocketMQ打造日均容量1500亿的消息引擎?

同程艺龙的机票、火车票、汽车票、酒店相关业务已经接入了RocketMQ,用于流量高峰时候的削峰,以减少后端的压力。同时,对常规的系统进行解耦,将一些同步处理改成异步处理,每天处理的数据达1500亿条。 在近期的Apache RockeMQ Meetup上,同程艺龙机票事业部架构师查江,分享了同程艺龙的消息系统如何应对每天1500亿条的数据处理,通过此文,您将了解到: 同程艺龙在消息方面的使用情况...

weixin_44180594的博客 646

qq音乐网络异常获取音乐失败_QQ音乐怎么诊断网络异常

QQ音乐软件给大家提供了海量的歌曲音乐,而且播放流畅不卡顿,音质也非常的好。想必还有不少朋友都不清楚QQ音乐怎么诊断网络异常,接下去就由老铁下载站小编告诉大家解决辨别网络异常方法介绍吧,有需要解决这个问题的朋友就来老铁下载站。怎么诊断网络异常打开手机,点开“QQ音乐”APP。 阅读页面信息,根据指引点击“同意”一栏。 然后根据页面指引选择一种方式登录“QQ音乐”APP。 主页面继续点击右下角...

weixin_42191440的博客 4204

RabbitMQ

RabbitMQ

idpangpengcheng的博客 901
上一篇: 微服务入门 雪崩 降级与熔断
下一篇: Mybatis大厂面试常见问题
Formor_
博客等级 码龄7年 7粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值