滴滴出行基于RocketMQ的企业级消息队列服务构建实践
68 浏览量
更新于2024-08-28
收藏 1.37MB PDF 举报
滴滴出行基于RocketMQ构建企业级消息队列服务的实践
本文主要介绍了滴滴出行为什么选择RocketMQ作为出行业务的消息队列解决方案,以及如何构建自己的消息队列服务。滴滴出行的消息技术选型经历了从混乱到规范的过程。
首先,滴滴出行的消息队列服务曾经非常混乱。公司内部没有专门的团队维护消息队列服务,导致消息队列使用方式较多,主要以Kafka为主,有业务直连的,也有通过独立的服务转发消息的。另外有一些团队也会用RocketMQ、Redis的list,甚至会用比较非主流的beanstalkkd。这种混乱的使用方式导致了无法维护、资源使用浪费等问题。
其次,滴滴出行弃用Kafka的主要原因是Kafka在使用过程中出现了集群数据写入抖动非常严重的情况,经常会有数据写失败。主要有两点原因:随着业务增长,Topic的数据增多,集群负载增大,性能下降;Kafka0.8.2版本有个bug,会导致副本重新复制,复制的时候有大量的读,影响写入。
为了解决这些问题,滴滴出行决定做自己的消息队列服务。首先需要解决业务方消息生产失败的问题。他们使用了代理层和codis作为缓存,解决了Kafka不定期写入失败的问题。然后,经过一系列的调研和测试之后,滴滴出行决定采用RocketMQ。为了支持多语言环境、解决一些迁移和某些业务的特殊需求,他们又在消费侧加上了一个代理服务。
滴滴出行的消息队列服务架构主要包括三个方向:迁移,把之前提到的所有五花八门的队列环境,全部迁移到RocketMQ上;功能迭代和成本性能上的优化;服务化,业务直接通过平台界面来申请资源,申请到之后直接使用。目前,滴滴出行的消息队列服务架构已经形成了一个核心框架,业务端只跟代理层交互。中间的消息引擎,负责消息的核心存储。
滴滴出行基于RocketMQ构建企业级消息队列服务的实践,对于企业级消息队列服务的构建提供了有价值的经验和借鉴。
2019-09-13 上传
2021-10-16 上传
点击了解资源详情
2024-09-29 上传
点击了解资源详情
2018-06-18 上传
2024-10-03 上传
2023-08-05 上传
2023-05-18 上传
weixin_38526780
- 粉丝: 4
- 资源: 994
最新资源
- 新代数控API接口实现CNC数据采集技术解析
- Java版Window任务管理器的设计与实现
- 响应式网页模板及前端源码合集:HTML、CSS、JS与H5
- 可爱贪吃蛇动画特效的Canvas实现教程
- 微信小程序婚礼邀请函教程
- SOCR UCLA WebGis修改:整合世界银行数据
- BUPT计网课程设计:实现具有中继转发功能的DNS服务器
- C# Winform记事本工具开发教程与功能介绍
- 移动端自适应H5网页模板与前端源码包
- Logadm日志管理工具:创建与删除日志条目的详细指南
- 双日记微信小程序开源项目-百度地图集成
- ThreeJS天空盒素材集锦 35+ 优质效果
- 百度地图Java源码深度解析:GoogleDapper中文翻译与应用
- Linux系统调查工具:BashScripts脚本集合
- Kubernetes v1.20 完整二进制安装指南与脚本
- 百度地图开发java源码-KSYMediaPlayerKit_Android库更新与使用说明