热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

钉钉如何通过时序存储赋能数字化变革的信息洪流?

今年的疫情来势汹汹,新冠病毒作为2020最具代表性的黑天鹅事件,虽然引起了一系列不良的连锁反应,但是却让“停工不停业、停课不停学”成为了疫

 

今年的疫情来势汹汹,新冠病毒作为2020最具代表性的黑天鹅事件,虽然引起了一系列不良的连锁反应,但是却让“停工不停业、停课不停学”成为了疫情时期的刚需。


在疫情期间钉钉下载量激增,直冲各大应用商城下载量榜首,同时在线人数最多达到了2亿人。即使现在各行业已经正常复工,但钉钉的下载与使用量仍保持一个高速的提升,截至目前为止已有3亿的用户和1500w的企业组织在上面进行工作和学习。

 

但在这飞速发展的背后,对于技术也自然提出了更高的要求,尤其IM作为钉钉的核心功能,随着用户应用的不断深入,因此在业务和系统上也迎来了更大的机遇和挑战。

 

在9月18日云栖大会上,阿里云智能高级技术专家木洛就为我们详细介绍了,表格存储Tablestore是如何助力钉钉消息存储架构的升级,帮助钉钉顶住持续增长的流量。

 

钉钉IM消息存储面临的业务挑战


1、用户对于产品的品质要求越来越高。在功能上,要求场景化、定制化;在体验上,需要多设备状态同步,历史消息漫游。另外,为了满足一些大型企业的沟通需求,还需要支持人数超过万人的大群。这些要求,都是一个企业级IM必须能够满足的。
2、疫情过后,钉钉IM系统规模快速扩大,日均消息突破千亿,高峰期消息发送TPS超过千万,消息的存储大小更是突破1个P,系统的水平扩展性和成本控制已经成为了目前的核心需要解决的问题。
3、企业经常会面临一些大规模复杂场景下的业务,如何能在这种情况下提供全年99.995%可用性,也是我们需要攻克的重要课题。

 

 

什么是表格存储

 

表格存储 Tablestore是提供集存储、搜索和分析多功能一体的一站式结构化数据存储平台,覆盖物联网和互联网下的多场景应用。表格存储TableStore采用与Google Bigtable类似的宽表模型,天然的分布式架构,能支撑高吞吐的数据写入以及PB级数据存储。同时其简单可靠的数据模型和架构,帮助企业数据在存储和计算系统之间自然地流转。

 

 

表格存储如何帮助钉钉实现升级


钉钉整个消息系统架构可以分为三层,分别是:消息端、接入层以及消息系统。在一个完整的信息流写入过程中,消息首先会从端发送到接入服务器,接入层将消息投递到消息系统后,消息系统会通过一个MQ(消息队列)来对消息进行异步处理,最后则会有一组消息处理服务器来处理消息。


而在消息处理阶段,又能分为存储、同步和通知三个步骤。首先系统会将消息持久化存储到存储库内以支持消息漫游,之后再通过写扩散或者读扩散的方式写入同步库内,最后消息索引库会异步地对消息存储库内的消息进行全文索引以支持消息在线检索。


这个架构下存储层的核心是三个库,也就是存储库、同步库和索引库。存储库存储全量消息,根据数据的冷热进行分层存储。同步库支持消息读写扩散写入,支持多端多位点实时拉取消息。索引库对消息及元数据进行索引,支持模糊查询以及消息全文检索。

 

 

而表格存储Tablestore之所以能承担了这三个库的存储,核心优势是:


一,表格存储Tablestore设计实现了Timeline模型,是专为IM/Feeds场景设计,可简化模型抽象和开发。
二,表格存储Tablestore单表能支持海量数据规模存储,冷热分层,支撑消息场景下PB级、万亿行规模低成本存储。
三,表格存储Tablestore分布式存储计算分离架构,可支撑每秒千万TPS扩散消息写,同时能达到毫秒级查询性能。
四,表格存储Tablestore具有Serverless服务形态,极致弹性,存储和计算按需扩容,满足低成本诉求。

 

达到的效果


在2020年,钉钉把原来的存储系统全量升级到表格存储TableStore,而表格存储Tablestore为钉钉提供了强大的建模能力和检索能力,高效地支撑复杂多样的业务功能实现。同时,其良好的水平拓展能力,也极好地满足了钉钉业务快速发展的需求。


另外,在成本控制上,表格存储Tablestore可根据IM的业务特性,实现冷热数据的分层存储以及弹性扩缩容能力,降低存储系统的运行成本,实现业务的可持续发展。

 


推荐阅读
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 寻求更强大的身份和访问管理(IAM)平台的企业正在转向云,并接受身份即服务(IDaaS)的灵活性。要为IAM选择正确的场外解决方案,业务管理人员和IT专业人员必须在实施之前评估安全 ... [详细]
  • 浅析对象 VO、DTO、DO、PO 概念
    作者|CatQi链接|cnblogs.comqixuejiap4390086.html前言由于此订阅号换了个皮肤,导致用户接受文章不及时。读者可以打开订阅号「Web项 ... [详细]
  • BPM是什么软件?1、BPM是BusinessProcessManagement的简称,译为业务流程管理,它是一种以规范化的构造端到端的卓越业务流程为中心以持续的提高组织业务绩效为 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • RabbitMQ的消息持久化处理
    1、RabbitMQ的消息持久化处理,消息的可靠性是RabbitMQ的一大特色,那么RabbitMQ是如何保证消息可靠性的呢——消息持久化。2、auto ... [详细]
author-avatar
一个不需要幸福的男人丶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有