AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Shopee 数据事件中心的设计和实现

  • 2019-08-15
  • 本文字数:890 字

    阅读完需:约 3 分钟

Shopee 数据事件中心的设计和实现

ArchSummit深圳2019大会上,林锋讲师做了《Shopee 数据事件中心的设计和实现》主题演讲,主要内容如下。


演讲简介


电商系统的业务需求复杂,包含许多不同的子系统,对一些数据的操作常常需要多个系统联动,也有在不同系统间同步数据的需求,导致不同系统之间紧密耦合。一些典型的场景如:


  1. 不同系统对订单数据有不同的查询需求,需要在数据库或 Elasticsearch 中维护多个不同维度的索引,并保证数据源与索引同步;

  2. 业务优化改造数据库表结构时,需要在切换过程中保证数据在新旧不同结构的数据表之间进行同步;

  3. 各个系统对核心数据如用户、商品信息等都有各自的缓存,需要在数据被修改时更新缓存或使缓存失效;

  4. 一些数据的修改会触发其他系统的操作,如卖家增加一个商品时需要自动在运营平台创建一个审核任务。


DEC (Data Event Center) 是 Shopee 的数据库事件订阅和任务执行平台,负责监听 MySQL 数据库数据变更事件,并根据用户配置对数据事件进行处理,执行数据同步、缓存同步、事件回调等不同类型的任务。通过 DEC 使用简单配置就可以实现上述不同的需求,从而提高研发效率,也使同一数据的不同使用方之间互相解耦。


本次演讲主要介绍 DEC 的系统设计和实现,以及我们是如何解决 DEC 实现过程中遇到的一系列技术挑战,包括如何实现系统整体的高可用性、可伸缩性和高性能,在不增加运维复杂度的情况下如何保证不同任务间的隔离,在复杂场景下如何保证数据的强一致性或最终一致性等。


演讲提纲


  1. 需求和应用场景;

  2. Shopee 数据库事件订阅系统演进;

  3. DEC 设计和实现;

  4. 实践中遇到的问题和解决方案;

  5. 未来规划。


听众受益点


  1. 了解数据库事件订阅和任务执行平台的应用场景、设计思路、实践中可能遇到的问题和解决方案;

  2. DEC 实现系统的高可用、可伸缩和数据一致性的思路可以作为设计其他分布式系统的参考。


讲师介绍


林锋


Shopee Engineering & Technology / 技术平台团队负责人


2012 年加入 Sea Group,目前在 Shopee Engineering & Technology 部门,担任 Shopee 技术平台团队负责人,负责容器平台、网关、中间件、服务网格等基础技术平台的建设。












完整演讲 PPT 下载链接


https://archsummit.infoq.cn/2019/shenzhen/schedule


2019-08-15 00:002971

评论

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

Eclipse Theia技术揭秘——初识Theia

龙之幽谷

开发工具

软件测试 | 测试开发 | 利用 rpush 和 blpop 实现 Redis 消息队列

测吧(北京)科技有限公司

测试

开发者有话说 | 一位工作十余年工程师的成长之路

矜辰所致

个人成长 经历分享 9月月更 成长感悟

认识 ESP-IDF-v4.3+工程结构(ESP32-C3应用调整示例)

矜辰所致

ESP32-C3 9月月更 ESP-IDF

架构实战营模块1作业

乖乖IvyShine

leetcode 572. Subtree of Another Tree 另一棵树的子树 (简单)

okokabcd

LeetCode 数据结构与算法

软件测试 | 测试开发 | Pytorch GPU 训练环境搭建

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 如何提取 IOS Runtime Headers

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 使用 ReportLab 绘制 PDF

测吧(北京)科技有限公司

测试

Eclipse Theia技术揭秘——脚手架源码分析

龙之幽谷

开发工具

Eclipse Theia技术揭秘——自定义布局

龙之幽谷

开发工具

VSCode技术揭秘(一)

龙之幽谷

vscode 开发工具

DophineSheduler上下游任务之间动态传参案例及易错点总结

白鲸开源

大数据 DolphinScheduler 任务调度 大数据 开源 参数传递

软件测试 | 测试开发 | 如何提取 IOS Document_apis

测吧(北京)科技有限公司

测试

如何建设前端物料平台?

龙之幽谷

前端 组件化

企业级前端组件建设

龙之幽谷

前端 组件库

JS基础——JS数据类型

龙之幽谷

前端 js

软件测试 | 测试开发 | Spring boot 之 RestTemplate访问

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 自定义form表单验证

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 从几个开源项目浅谈IOS视频流输出方案

测吧(北京)科技有限公司

测试

刘奇:能否掌控复杂性,决定着分布式数据库的生死存亡

PingCAP

#TiDB

企业级npm仓库搭建

龙之幽谷

前端 nexus NPM仓库

软件测试 | 测试开发 | Golang死信队列的使用

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Mysql 之执行计划

测吧(北京)科技有限公司

测试

新书上市 | 连接组,向人类科学的最终前沿进军

图灵社区

神经网络 大脑 脑科学

Eclipse Theia技术揭秘——构建桌面IDE

龙之幽谷

开发工具

医疗卫生机构应该多久进行一次等保测评?

行云管家

网络安全 信息安全 等保测评 等级测评

MobSDK 客户端API

MobTech袤博科技

API an'droid

新书上市 | 连接组,向人类科学的最终前沿进军

图灵教育

神经网络 大脑 脑科学

运维学网络安全还是云计算好?哪个更有前景?

行云管家

云计算 运维 网络安全

软件测试 | 测试开发 | web自动化测试-执行 JavaScript 脚本

测吧(北京)科技有限公司

测试

Shopee 数据事件中心的设计和实现_ArchSummit_林锋_InfoQ精选文章