速来报名!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:002747

评论

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

mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比,于是写了个插件。

why技术

Java 源码 mybatis

ARTS 打卡 WEEK3

编程之心

ARTS 打卡计划

[安利] WSL Linux 子系统,真香!附完整实操

猴哥一一 cium

Docker Linux 推荐 WSL2 Windows 10

架构师训练营-学习笔记-第一周

心在飞

极客大学架构师训练营

第一周UML作业

吴建中

MySQL 笔记(二)日志系统

奈何花开

Java MySQL

年龄性别的问题,好像也不是太大问题……

zhoo299

生活 随笔

ARTS-02

NIMO

ARTS 打卡计划 ARTS活动

图解Java垃圾回收算法及详细过程!

攀岩飞鱼

Java JVM 虚拟机 垃圾回收机制

SpringBoot整合Quartz实现任务定时

北漂码农有话说

SpringBoot 2

第一周总结

andy

第一周总结

ARTS打卡Week 03

teoking

ios LeetCode

史上最诡异问题,iOS 单例初始化两次,你遇到过吗?

liu_liu

ios 初始化 单例 两次

第一周作业

andy

公司出了一款新产品,要不要招代理商?

石云升

用户增长 价值网依赖 产品定位 新产品

第一周学习总结

A Matt

极客大学架构师训练营

程序员的晚餐 | 6 月 7 日 豆腐年糕

清远

美食

HBase 常用 Shell 命令手册

Rayjun

Java HBase

软件建模与设计文档

大雄

UML

ARTS-WEEK1

Allen

食堂就餐卡系统设计

大雄

带你学够浪:Go语言基础系列 - 8分钟学复合类型

程序员柠檬

后端 Go 语言

作业1-食堂就餐卡系统设计

A Matt

scala callback hell

HackMSF

编程 最佳实践

ngrok穿越本地服务器,极客大学架构师训练营 第一课总结,John 易筋 ARTS打卡Week 03

John(易筋)

极客时间 极客大学 ngrok

ARTS-week-2

youngitachi

ARTS 打卡计划

极客时间 - 架构师训练营 - week1 - 作业2

jjn0703

极客大学架构师训练营

架构文档-作业01

ashuai1106

UML

面试了 6 轮 Google中国 之后,还是挂了

程序猿石头

面试 谷歌Google 经验分享 面经

使用 Docker Desktop 中的 Kubernetes

FeiLong

Docker Kubernetes

架构师训练营练习:食堂就餐卡系统设计

Shawn

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