写点什么

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

评论

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

告诉你一个学习编程的诀窍(建议收藏)

ithuangqing

学习 编程 自学编程

程序员不可不知的:2020年测试六大趋势

禅道项目管理

人工智能 开源 DevOps 敏捷开发 测试

Filebeat + Kafka + Elasticsearch + Kibana 实现日志收集与管理

AlwaysBeta

大数据 kafka elasticsearch elastic 数据分析

从少儿编程讲讲开发行业的大趋势

kimmking

在线教育 少儿编程

高性能交易系统设计原理

廖雪峰

架构

SpringBoot+Mybatis Plus多租户动态数据源

zane

数据库 Spring Cloud mybatis

ANTLR 入门(二)

zane

编程语言 ANTLR

曾国藩家书嘉言钞(六)

熊小北同学

曾国藩 曾国藩家书 嘉言钞

OKR实践中的痛点(2):对不qi,对不qi

大叔杨

OKR Scrum 敏捷 敏捷开发

讲一个程序员如何副业月赚三万的真实故事

非著名程序员

程序员 副业 副业赚钱 提升认知

Ruoyi Vue前后端分离版本添加UReport设计器

赵欣

Vue Ruoyi uReport

程序员到底应该学习什么语言好?

页面仔小杨

远程办公钉钉使用体验

冯夷

钉钉

变革之路的思考

龙眼果

本地开发环境搭建利器--vagrant

aoho

DevOps 运维 vagrant

字节码编程,Javassist篇二《定义属性以及创建方法时多种入参和出参类型的使用》

小傅哥

Java 字节码编程 字节码插桩 小傅哥

从高盛的技术“开源”看金融业软件发展未来

FinClip

open-source 金融科技 数字化生态

JDK源码分析之 ArrayList

Wh1

源码分析

Laravel 7 新特性 - 流畅的字符串操作

Middleware

php laravel string

spring-cloud-stream 集成 rocketmq

再见孙悟空

RocketMQ Spring Cloud

读 Guide to Java String Pool

shengjk1

Java string pool

100字:对数时间复杂度

韩小非

算法 时间复杂度

字节码编程,Javassist篇一《基于javassist的第一个案例helloworld》

小傅哥

Java 字节码编程 字节码插桩 小傅哥

一个平凡者的阅读故事

卷尚

如何写作一本书(1):写前须知

英子编辑

技术 写作 读书

彻底明白如何设计一个良好的 API

Yezhiwei

翻译: Effective Go (3)

申屠鹏会

翻译 gol

《代码整洁之道》原则整理

insight

编程

DDD 实践手册(1.Get Started)

Joshua

领域驱动设计 DDD 系统架构 架构模式

招聘小思考

水色

ANTLR入门(一)

zane

编程语言 ANTLR

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