首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

腾讯会议核心存储治理:Redis分库和异地多活

有幸作为 owner 负责(2022.12-2023.08)了会控存储的优化改造,本文主要从业务、个人和企业数据分库、异地容灾和多活(下一步目标)层面总结了会控存储治理的成功实践,目的是形成一套方法论,...02目标 存储治理主要有五个目标: ▶︎ 异地容灾/多活:广州机房挂了,可切换至上海正常服务,提升 SLA 质量,达到可用性5个9; ▶︎ 数据隔离:多 SET 数据按个人、企业隔离存储,优先保障企业服务的稳定性和...核心存储改造势必会带来业务风险和架构调整,异地多活、个人企业隔离和 SET 隔离只是不同维度层面上的数据隔离,因此我们希望能统一处理,目标是个人和企业数据隔离工作能为下一步的异地容灾/多活做好铺垫。...请求经 TGW 调度哪个地域则读写在此地域闭环处理,地域间两两相互同步,每个区域都有好友状态的全量数据,状态变更直接批量 PUSH 给异地好友(在本区域的存储读取异地好友状态列表)的接入点,状态系统可以容忍数据跨城同步的延迟...另一个问题是异地写同一份数据导致的冲突合并数据不一致问题。 5.2 请求路由 存储拆分后,如何将请求路由至正确的处理单元?

63431
您找到你想要的搜索结果了吗?
是的
没有找到

异地多活场景下的数据同步之道

数据同步是异地多活的基础,所有具备数据存储能力的组件如:数据库、缓存、MQ等,数据都可以进行同步,形成一个庞大而复杂的数据同步拓扑。 本文将先从概念上介绍单元化、异地多活、就近访问等基本概念。...之后,将以数据库为例,讲解在数据同步的情况下,如何解决数据回环、数据冲突、数据重复等典型问题。 一、什么是单元化 如果仅仅从"单元化”这个词汇的角度来说,我们可以理解为将数据划分到多个单元进行存储。"...考虑一开始只有一个IDC的情况,所有用户的数据都会写入同一份底层存储中,如下图所示: ?...3、小结 如果仅仅是考虑不同地区的用户数据就近写入距离最近的IDC,这是纯粹意义上的”单元化”。 不同单元的之间数据实时进行同步,相互备份对方的数据,才能做到真正意义上"异地多活”。...因此,通常我们把binlog syncer单独作为一个模块,其只负责解析从数据库中拉取并解析binlog,并在内存中缓存(或持久化存储)。

1.9K30

数据库的异地多活分析和方案

前言 ---- 前文提到异地多活的几种型态和基于OceanBase实现方案。这里再总结一下基于其他分布式数据库(MySQL)实现异地多活时要考虑的点。...这种只有应用多活,数据库是异地备份容灾(无并发)。 2. 应用双活,数据库A地读写,B地只读。这种也是应用双活,数据库读写分离(实例级并发)。 3. 应用双活,数据库双活,两地应用同时读写不同表。...异地多活的困难 ---- 异地多活的目标很吸引人,但是技术门槛也很高。说光靠一个数据库或者一个数据传输产品就可以做异地多活是很片面的。...垂直拆分要求数据是分开存储(分到不同的Database或者Instance等);应用做服务化,彼此解耦。...XDB解决了数据同步问题、故障切换和数据一致性问题。所以不需要借助数据传输产品。 基于OceanBase的异地多活方案 ? 这个方案在前文里已经详细介绍。

5.7K11

异地多活场景下的数据同步之道

在当今互联网行业,大多数人互联网从业者对"单元化"、"异地多活"这些词汇已经耳熟能详。...而数据同步是异地多活的基础,所有具备数据存储能力的组件如:数据库、缓存、MQ等,数据都可以进行同步,形成一个庞大而复杂的数据同步拓扑。 本文将先从概念上介绍单元化、异地多活、就近访问等基本概念。...之后,将以数据库为例,讲解在数据同步的情况下,如何解决数据回环、数据冲突、数据重复等典型问题。 1 什么是单元化 如果仅仅从"单元化”这个词汇的角度来说,我们可以理解为将数据划分到多个单元进行存储。"...小结:如果仅仅是考虑不同地区的用户数据就近写入距离最近的IDC,这是纯粹意义上的”单元化”。不同单元的之间数据实时进行同步,相互备份对方的数据,才能做到真正意义上"异地多活”。...因此,通常我们把binlog syncer单独作为一个模块,其只负责解析从数据库中拉取并解析binlog,并在内存中缓存(或持久化存储)。

3.3K41

异地多活架构

物理距离必然导致数据不一致,这就得从“数据”特性来解决,如果是强一致性要求的数据(如存款余额),就无法做异地多活。...这就出事儿了,所以这类数据不会做跨城异地多活,只能用同城异区架构,因为同城的网络环境要好很多,可以搭建多条互联通道,成本也不会太高。...跨城异地模式适用于对数据一致性要求不高的场景,例如: 用户登录,数据不一致时重新登录即可。 新闻网站,一天内新闻数据变化较少。 微博网站,即使丢失一点微博或评论数据也影响不大。 3....采用多种手段同步数据 思维误区:只使用存储系统的同步功能。...存储系统本身就有强大的同步功能,例如 mysql redis 都可以很好的实现同步,但某些场景下是无法满足需要的,所以要使用多种手段配合,例如: 消息队列 创建账号后,将账号数据通过消息队列同步到其他业务中心

3.1K21

基于裸数据异地数据库性能诊断与优化

硬件包括CPU、内存、存储、网络设备等,软件方面包括操作系统版本、操作系统参数、数据库版本、数据库参数、数据库架构、运行的SQL代码等。...生产环境常做访问控制,管理生产环境DBA忙于日常事务无法顾及数据库性能。本文介绍一次性从生产库上获取分析性能SQL相关的数据,拿到本地环境分析诊断生产性能问题。...3、导出AWR裸数据 $ORACLE_HOME/rdbms/admin/awrextr.sql 4、本地导入创建的表 5、通过数据泵导入AWR裸数据 $ORACLE_HOME/rdbms/admin/...结合绑定变量和条件看,大范围上,只查询40天以内的数据。 条件列数据分布情况 ?...已知此表中SUBMITDATE保留3年数据,在数据分布平均的情况下,此SQL查询的数据量约为(296815739/3/365)*40/25/2=21.7W,约占整个表的0.07%。

98650

同城异地灾备

序言 同城异地灾备,主要是用来进行备份容灾的,从而当一个数据中心挂了,另外一个数据中心经过切换之后,能让服务迅速的恢复。...热升级了解一下,不可预知的中断了解一下 同城异地最关键的点在于存储存储如何跨机房使用,从而分为几个方面进行探讨: 1、 DNS解析 在业务大量使用DNS解耦的时候,而且使用双机房的时候...2、 数据库同步 在数据库方面,主要是使用mysql,而mysql则主要是使用主备模式,从而主的在一个机房,而备库则在另外一个机房,在同步的时候,不可避免的情况就是如果一旦主机宕机,从而有可能是丢失数据的...核心数据库,要想高可用,并且不存在数据丢失,从而可以使用分布式数据库,在数据写入的时候,采用强同步的方式写入数据,对于master节点,可以采用三机房三中心的模式,使用paxos算法进行选主,从而达到高可用的目标...,并且在数据写入的时候,写入三个分片,从而一个分片的数据损坏,在后台进程中,数据能慢慢的自动弥补回来,从而达到强一致性的数据保存的效果。

4K31

ES异地双活方案

2、如果3个机房分属异地,比如:上海、广州、北京,三个城市间数据传输必然增加延时,要降低延时一般是拉专线,这样一方面成本还会继续增加,而且这么长距离传输,网络抖动是难免的,抖动期间,会增加选举"误切换"...3、3个节点之间不断的数据同步,会使三地机房间的网络流量增加,特别是某个节点挂了,重新恢复后,会在短时间内从master上同步数据,有流量风暴的隐患。...解决了双机房ES"读"的问题,再来看“写”的问题,可能有同学说了,这还不简单,直接双写就行了吧,一份数据,向A、B机房的ES集群各写一份。...2、当B机房的ES挂了,双写不进去时,过一段时间又恢复后,故障期间的数据,B机房的ES集群怎么补进去?如果手动事后补数据,虽然可行,但是毕竟麻烦。...这样就免去了事后手动补数据的麻烦。 当然,这个方案的提前是MQ本身是高可用的,不过这个不难做到,已经有一些rocket mq双机房多活的案例,不在本文讨论范围,大家可以自行搜索。

4K30

异地容灾方案解析

一、异地容灾主要备份三种数据: 1、DB数据 2、操作系统 3、日志信息 二、恢复时间不能超过30分钟 三、图中为DB的备份方式,DB总的有四份备份:生产存储一份、移动硬盘一份、备份存储一份、灾备存储一份...备份方式为,平时通过生产系统的介质服务器传输到移动硬盘,通过CS传输数据到灾备中心的介质服务器,在通过介质服务器传输到备份存储、灾备存储。...生产中心发生异常时的DB切换方式为,将移动硬盘迅速转移挂载到灾备中心的介质服务器,然后再发起恢复 四、日常对OS进行每日备份,通过CS传输到灾备中心的介质服务器,再发送给备份存储和灾备存储,即OS的备份有三份...:生产存储、备份存储、灾备存储 五、日志的备份和OS一样 六、恢复切换步骤:日志恢复、OS恢复、修改IP和主机名、移动硬盘转移挂载 七、本地恢复 image.png 八、两地传输带宽的计算要考虑每日数据增量

2.5K10

最易懂的数据异地多活方案

今天我们将尝试探讨数据库的异地多活高可用。注意,我们讨论的都是超大数据量(50TB 级别)的数据库。...POLARDB 和 Aurora 是相同的思路,计算节点是分布式的,存储使用共享存储,带来的问题还是单机房问题。...因此,分布式数据库解决的还是超大数据存储和单机房的 HA,一旦跨越城市,目前还没有看到好的方案。 第二种 在分库分表就能无限扩容吗一文中,我们提到了单元化。...在单元化的基础上,我们可以实现异地多活。 ?...总结 本文简单的讨论了数据库的异地多活的方案,我们认为,在单元化的方案中,同步是核心,稳定的同步是保证数据一致的关键,而这,在单个机房中,只需要通过简单的 RPC 即可解决,但在跨机房,跨城市的网络中,

1.8K10

存储数据

数据缓存 通过《网络数据采集和解析》一文,我们已经知道了如何从指定的页面中抓取数据,以及如何保存抓取的结果,但是我们没有考虑过这么一种情况,就是我们可能需要从已经抓取过的页面中提取出更多的数据,重新去下载这些页面对于规模不大的网站倒是问题也不大...使用NoSQL Redis简介 Redis是REmote DIctionary Server的缩写,它是一个用ANSI C编写的高性能的key-value存储系统,与其他的key-value存储系统相比...Redis支持数据的持久化(RDB和AOF两种方式),可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。...Redis不仅仅支持简单的key-value类型的数据,同时还提供hash、list、set,zset、hyperloglog、geo等数据类型。...配置底层有多少个数据库。 配置Redis的持久化机制 - RDB。 配置Redis的持久化机制 - AOF。 配置访问Redis服务器的验证口令。

4.6K30

谈谈异地多活架构

技巧3:采用多种手段同步数据 数据同步是异地多活架构设计的核心,幸运的是基本上存储系统本身都会有同步的功能。...既然说存储系统本身就有同步功能,而且同步功能还很强大,为何说只使用存储系统是一个思维误区呢?...尤其是异地多机房这种部署,各种各样的异常情况都可能出现,当我们只考虑存储系统本身的同步功能时,就会发现无法做到真正的异地多活。...解决的方案就是拓开思路,避免只使用存储系统的同步功能,可以将多种手段配合存储系统的同步来使用,甚至可以不采用存储系统的同步方案,改用自己的同步方案。...第3步:数据同步 确定数据的特点后,我们可以根据不同的数据设计不同的同步方案。常见的数据同步方案有: 存储系统同步 这是最常用也是最简单的同步方式。

3.2K41

异地多活演变流程

因为业务应用通常是「无状态」的(不像数据库那样存储数据),所以直接部署即可,非常简单。...你没看错,两个机房的存储必须都是「主库」,而且两个机房的数据还要「互相同步」数据,即客户端无论写哪一个机房,都能把这条数据同步到另一个机房。...现在,整个架构就变成了这样:图片注意看,两个机房的存储层都互相同步数据的。...安全起见,每个机房在写存储时,还需要有一套机制,能够检测「数据归属」,应用层操作存储时,需要通过中间件来做「兜底」,避免不该写本机房的情况发生。...在我看来,从同城双活演变为异地双活的过程,是最为复杂的,最核心的东西包括,业务单元化划分、存储数据双向同步、最上层的分片逻辑,这些是实现异地多活的重中之重。

45221

容灾系列(九)——异地数据冷备容灾建设

异地数据冷备方案2.1 API实现方案数据备份:云平台的数据数据备份均为同地域,因此需要将该备份数据上传到异地COS存储桶。...2)通过url将备份下载到本地 3)调用cos上传api,将本地的备份文件上传到异地cos桶 4)按照备份业务规则,周期性的执行上面1-3步骤,将备份存储异地COS存储桶。...目前云函数支持备份产品如下:图片跨地域复制:目前云函数只支持同地域备份,即备份数据库和cos需要同地域,因此通过存储桶的跨地域复制能力,将对应的备份文件复制到异地存储桶。...采用数据库备份服务;当前数据库备份服务暂不支持redis,采用api方式进行备份;cos采用异地存储桶的复制进行数据备份。...对于数据恢复方式如下:cos数据恢复:cos存储异地复制,数据无需恢复。redis数据恢复:redis通过购买云redis使用之前备份数据进行人工恢复。

8.5K164

android 数据存储---- SharedPreferences实现数据存储

SharedPreferences作为android的存储方式有以下特点: 1.只能存放key-value模式的键值。 2.本质就是就是以xml文件在应用程序所在包中存放数据。...用户不需要去  xml文件的生成和解析 4.由于 SharedPreferences 只能存放key-value  简单的数据结构,通过用来做软件配置参数,用来配置用户对软件的自定义或设置参数。...如果要存在复杂的数据,可以使用文件,如果还需要方便的增删改查 的话,就只能用Sqlite数据库来完成 下面是该使用的代码: 所用的字符串 <?...this.getApplicationContext()); pref.save(name, ID, phone); Toast.makeText(this.getApplicationContext(), "写入数据成功...用户只需要创建一实体,然后想里面添加数据和取出数据,即可 结果如下:

5K50

京东JDHBase异地多活实践

JDHBase在京东集团作为线上kv存储,承担了大量在线业务,11.11、6.18 均经历了每天万亿级读写访问请求,目前规模达到7000+节点,存储容量达到了90PB。...为了保障业务稳定不间断运行,我们构建了JDHBase集群的异地多活系统。主要介绍在我们在异地多活系统的实践。...PolicyServer 是对外提供查询和修改策略的服务,它所有策略数据存储在MySQL中。可以通过加节点的方式动态扩展形成一个服务集群,避免单点问题。...跨机房异地数据中心的之间的带宽是有限的,在业务流量高峰期不能将有限的网络资源用于同步数据。因此在Fox Manager端我们也做了对集群的相应控制,分时段调整Replication速度。...总结与展望 JDHBase在不断吸收业界异地灾备经验的同时,也经过一系列的实践和演进,目前SLA已经能够达到99.98%,从毫无异地容灾措施到完善的监控、告警、切换、一致性保障机制,为业务提供稳定可靠的存储服务

1.4K41
领券