写点什么

钉钉企业级 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:451854

评论

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

终于玩明白Golang数据可视化了!

Jackpop

当我们在谈‘数据标准’的时候,我们到底在谈什么?

圣迪

数据 主数据 数据标准 参考数据

S 锁与 X 锁的爱恨情仇《死磕MySQL系列 四》

咔咔

MySQL 共享锁 排它锁

如何选择普通索引和唯一索引《死磕MySQL系列 五》

咔咔

MySQL 唯一索引 普通索引

程序员有哪些提升幸福感的专属神器?

Jackpop

Prometheus Exporter (二十)Lustre Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 Lustre

初识架构设计

皓月

架构实战营 #架构实战营 「架构实战营」

面向 JavaScript 开发人员的 5 大物联网库

devpoint

JavaScript 元宇宙 12月日更 meta

学习宫本茂的创意

Justin

方法论 创意 28天写作

团队基建系列 - 组织知识传承 2

搬砖的周狮傅

团队协作 团队成长

推开GraphQL大门

梁龙先森

签约计划第二季

【LeetCode】电话号码的字母组合Java题解

Albert

算法 LeetCode 12月日更

入驻快讯|欢迎 OpenI 启智社区正式入驻 InfoQ 写作平台!

InfoQ写作社区官方

入驻快讯

整理的三重境界

Ian哥

28天写作 超级整理术 整理 整理的三重境界

架构实战营模块1课后作业

swallowluo

架构实战营

Flutter 详解 Timer & ACETimerButton 自定义计时器按钮

阿策小和尚

28天写作 0 基础学习 Flutter 内容合集 签约计划第二季 12月日更

图解栈帧,别再死记硬背

李子捌

Java 28天写作 12月日更

一生挚友redo log、binlog《死磕MySQL系列 二》

咔咔

MySQL Binlog Redo Log

HOW

Nydia

MySQL强人“锁”难《死磕MySQL系列 三》

咔咔

MySQL

程序员的“双十二”大礼包,上海拆箱啦!

百度大脑

人工智能

[Pulsar] 订阅跳过一定数量消息的原理

Zike Yang

Apache Pulsar 12月日更

Flutter开发:项目加载本地html文件的步骤

三掌柜

28天写作 21天挑战 12月日更 12月

python scrapy 管道学习,并拿在行练手爬虫项目

梦想橡皮擦

12月日更

说了半天跨平台,今儿咱就来跨跨!(中)

为自己带盐

Docker jenkins 28天写作 签约计划第二季 12月日更

聊聊 Kafka: Kafka 为啥这么快?

老周聊架构

签约计划第二季

老生常谈--什么是装箱什么是拆箱

喵叔

28天写作 12月日更

业务代码如何才能不再写出大串的if/else?

JavaEdge

12月日更

88邮箱-从入职到离职

D

Flutter中如何添加垂直分隔线【Flutter 专题 18】

坚果

flutter 28天写作 12月日更

[vue3组件库]0到1参与7k Star大型开源项目成为贡献者🎃

速冻鱼

开源 大前端 签约计划第二季 12月日更

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