【ArchSummit】如何通过AIOps推动可量化的业务价值增长和效率提升?>>> 了解详情
写点什么

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:002495

评论

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

卡巴斯基产品本地化用时能缩短 77%,怎么做到的?

葛仲君

项目管理 软件开发 本地化 开发流程

短视频时代下的知识摄取

Neco.W

学习 知识管理 知识体系 短视频

2020年3月北京BGP机房网络质量评测报告

博睿数据

运维 APM 机房 数据中心 拨测

代码刚提交暂存区,组长突然要我把新增代码 Commit另一分支怎么办?

zhuoqianmingyue

git

微软:正式发布针对 .NET Core的 Winform 设计器

葡萄城技术团队

.net 微软 Win .net core

快速入门 Nacos 作为配置中心操作

zhuoqianmingyue

nacos SpringBoot 2

使用Spring Boot和Docker构建微服务架构(二)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

程序员的修行之路-保持良好的心态

牧马人

程序员

使用Spring Boot和Docker构建微服务架构(一)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

配置国内的pip源以提高使用pip安装python软件包的速度

良少

Python pip

使用Spring Boot和Docker构建微服务架构(四)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

2020年3月云主机性能评测报告

博睿数据

云计算 运维 机房 数据中心 主机

Java | @Override 不要再把它当成可有可无的了

YoungZY

Java 注解 Override annotation

zookeeper到nacos的迁移实践

捉虫大师

架构 nacos

程序员的修行之路-关于编程语言

牧马人

程序员

后台定时统计任务太耗时如何优化一下

zhuoqianmingyue

线程池

产品周刊 | 第 16 期(20200524)

Herbert

产品 设计 产品经理 产品设计

Jsp页面报错后如何找到提示信息中的_jsp.java文件

阡陌r

足不出户“逛”银行,37家城商行、农商行手机银行App性能大比拼

博睿数据

APM App 评测 网银 银行

玩转SpringBoot2.x之缓存对象

zhuoqianmingyue

redis springboot

是什么在背后支撑起“带货一哥”李佳琦?

博睿数据

负载均衡 APM 压测 秒杀 并发

游戏夜读 | 世界两大游戏评论!

game1night

linux 账户及安全管理(一 账户管理)

牧马人

Linux

爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【1】-前期准备

hadesxiong

Python 爬虫 保险 Scrapy

企业微信机器人在大型财务共享中心的应用实践

DT极客

微信gif图片大小的规则

石云升

微信 GIF

Spring Cloud 和 Dubbo 哪个会被淘汰?

程序猿DD

Spring Cloud dubbo

使用Spring Boot和Docker构建微服务架构(三)

Tux Hu

Docker 架构 容器 微服务 Spring Boot

程序员的修行之路-关于编程语言

牧马人

程序员

数据产品经理实战-DMP搭建

第519区

产品经理 营销

ARTS第一周

困到清醒

ARTS 打卡计划 起跑

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