写点什么

钉钉企业级 IM 存储的挑战与实践

  • 2019-10-01
  • 本文字数:763 字

    阅读完需:约 3 分钟

钉钉企业级 IM 存储的挑战与实践

作为 ToB 产品,钉钉具备独特的业务场景。首先是超级大群,在钉钉上,企业的组织关系可映射到 IM 的群。例如全员群就是包含企业所有员工的一个群。这带来为数众多的超级大群。在节假日时期,特别是元旦、春节或者双 11 这样的重大活动,老板和员工在群里高频互动,给 IM 存储系统带来巨大的压力。


第二是聊天数据长期保存,历史消息可实时回溯。与 ToC 的消息所不同的是,钉钉的聊天数据属于企业资产,需要长期保留。随着钉钉体量迅速增长,面临着存储容量扩展瓶颈,存储成本高昂等问题。


第三是稳定性要求高。一旦钉钉的消息发不出去或者收消息出现延迟,会大面积影响企业的核心业务运转。从历史经验来看,存储恰恰是非常容易出问题的依赖。


面对上述挑战,我们将 IM 存储模型从写扩散升级为读写扩散混合,减少超级大群对存储的扩散量;与阿里自研的 X-Engine 存储引擎共创,实现了一个低成本,适应钉钉 IM 业务的冷热存储架构;同时通过存储冗余,应对高稳定性的要求。本次分享系统介绍我们的解决思路和关键细节,希望可以让你有所收获。


钉钉 IM 服务端研发技术专家劲弩老师将在ArchSummit全球架构师峰会(北京站)2019为我们带来《钉钉企业级 IM 存储的挑战与实践》的精彩分享。


演讲提纲


  1. 钉钉 IM 业务的特点

  2. 钉钉 IM 的消息存储模型

  3. 钉钉 IM 冷热存储架构和背后的思考

  4. 钉钉 IM 高可用存储架构实践


听众受益点:


  1. 了解业界 IM 的存储模型;

  2. 了解企业级业务的特点,及其对技术架构的影响;

  3. 了解存储成本优化的思路和解决办法。


嘉宾介绍


劲弩 钉钉 IM 服务端研发技术专家


主要负责钉钉 IM 的存储架构优化、成本控制和消息发送稳定性保障。2016 年加入钉钉,擅长高可用、低成本的企业级系统架构,对钉钉 IM 的技术演进深有体会。


更多业务架构的相关分享请访问 ArchSummit全球架构师峰会(北京站)2019官网。


https://archsummit.infoq.cn/2019/beijing/


2019-10-01 15:452097

评论

发布
暂无评论
发现更多内容

2. 整体把握 CocoaPods 核心组件

Edmond

ruby ios swift CocoaPods 包管理工具

排序算法一(冒泡排序、选择排序、插入排序)

xcbeyond

Java 算法 冒泡排序 选择排序 插入排序

排序算法二(归并排序、快速排序、希尔排序)

xcbeyond

Java 算法 快速排序 归并排序 希尔排序

知识点梳理:聊聊iOS SDK数据采集那点事儿

易观大数据

C++ 一篇搞懂多态的实现原理

小林coding

c++ 编程 封装、继承、多态

C++ 运算符重载的基本概念

小林coding

c++ 编程

C++ 赋值运算符‘=‘的重载(浅拷贝、深拷贝)

小林coding

c++ 编程 浅拷贝和深拷贝

C++ 模板常见特性(函数模板、类模板)

小林coding

c++ 编程 模板方法

SpringCloud(Netflix)-技术专题-Ribbon的基本使用

码界西柚

Java 技术 SpringCloud

云计算的可信新边界:边缘计算与协同未来——【两万五千字长文】

华为云开发者联盟

云计算 云原生 5G 边缘计算 云服务

最佳实践:使用阿里云CDN加速OSS访问

阿里云Edge Plus

CDN

C++ 一篇搞懂继承的常见特性

小林coding

c++ 编程 继承

C++ static 与 const 的认识

小林coding

c++ 编程 static关键字

Linux 平均负载高了怎么办?

小林coding

Linux 问题处理 linux命令

SpreadJS 纯前端表格控件应用案例:铭天预算执行系统

葡萄城技术团队

SpreadJS 预算执行系统

C++ 自增、自减运算符的重载和性能分析

小林coding

c++ 编程 运算符

Java-技术专题-final关键字

码界西柚

职教黄金时代,河南如何继续“乘风破浪”?

InfoQ_967a83c6d0d7

白鹭引擎助力《迷你世界》研发团队开发3D小游戏版

DT极客

微服务-技术专题-初步介绍服务发现

码界西柚

Java 技术 微服务

使用 Golang 和 HTML5 开发一个 MacOS App

郭旭东

macos Go 语言

央行发行的数字货币会带来哪些变化?

石云升

区块链 数字货币 DECP

C++ this指针的理解和作用

小林coding

c c++ 指针

C++ 手把手教你实现可变长的数组

小林coding

c++ 编程 数组

Go语言专家测试,80%的人第一题就挂了!

博文视点Broadview

云原生 评测 Go 语言

经济优势再显,江苏如何通过职教打造人才高地?

InfoQ_967a83c6d0d7

高效程序员的45个习惯:敏捷开发修炼之道(2)

石云升

读书笔记 敏捷开发 对事不对人 欲速则不达

区块链:在发展的同时,准备好你的产品。

石云升

区块链 DCEP 创新

C++ 流插入和流提取运算符的重载

小林coding

c++ 编程

Volcano:带你体验容器与批量计算的碰撞的火花

华为云开发者联盟

Kubernetes 容器 分布式 Volcano 批量计算

Java NIO 是 NIO么?

soolaugust

Java io nio

钉钉企业级 IM 存储的挑战与实践_ArchSummit_劲弩_InfoQ精选文章