08-03 底层数据设计策略——高可用数据

这篇具有很好参考价值的文章主要介绍了08-03 底层数据设计策略——高可用数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据备份和失效转移

数据备份

  • 冷备(历史订单、业务报表、时效性不高):最最最坏情况下才会用
    • 低成本
    • 定时
    • 数据丢失
    • 不一致
  • 热备
    • 同步热备(一个库提交成功,别的提交失败,不容易控制)
    • 主从热备

Canal数据迁移神器

  • 数据镜像
  • 增量同步
  • 数据异构
    • 加入根据订单id做分库分表的标识,但是需要根据用户id去查询,这时候就得一个一个库挨个查询,带来极大的性能问题,这时需要做数据异构。
    • 根据订单id做一套分库,再根据用户id做一套分库
    • 可以用Canal实现根据订单id的数据做一套根据用户id分库的数据,实现根据用户和订单都可以查询且不影响效率

借助NoSQL特性助力业务场景

MongDB

  • 面向集合
  • 适合高QPS读写,大对象存储

Redis

  • key—value数据库
  • 必须拿到key才能找到value,不能反向查询
  • 业务缓存
  • 限流、计数器

GraphQL

  • 网状关系
  • 图数据库

HBase

  • 列数据库
  • 适合大量数据,不适合小量数据(因为会做压缩)
  • 适合聚合操作

ES

  • 全文检索
  • 分词
  • 倒排索引:通俗理解就是通过value找到key

数据冗余——反范式设计

  • 大宽表,用冗余数据提升查询效率

阿里系的数据订正流程规范

  • Owner:数据库的创建者
  • DBA:负责线上数据的规范,提出SQL性能调优的建议
  • 一线码农:一般只有read权限
  1. 提交变更给owner,需要执行的sql和预计的结果
  2. owner审核
  3. 手动执行
  • 内部开放权限:Owner + DBA把控(因为相信,所以简单)

阿里开源项目Driud监控SQL效率

面试题

除了主从外,你还在项目中应用了那些其他的容灾备份手段

冷备 + 热备(数据实时镜像、同步)

数据异构方案的设计(数据迁移)

Canal是这类问题的终结者文章来源地址https://www.toymoban.com/news/detail-441792.html

场景设计题——底层存储

  • NoSQL:根据场景特征选取合适的NoSQL数据库
  • 互联网业务为了保证查询速度,都会有数据冗余

谈谈MySQL的同步方式

  • BinLog方案
  • Canal方案:基于BinLog的中间件

到了这里,关于08-03 底层数据设计策略——高可用数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ICESat-2 从ATL08中获取ATL03分类结果

    ICESat-2 ATL03数据和ATL08数据的分段距离不一致,ATL08在ATL03的基础上重新分段,并对分段内的数据做处理得到一系列的结果,详情见数据字典: ATL08 Product Data Dictionary (nsidc.org) ATL08使用DRAGANN算法对ATL03数据做了去噪处理,并使用分类算法对每个光子进行分类 标志值 标志含义 -

    2024年04月27日
    浏览(52)
  • Redis进阶底层原理 - 高可用哨兵模式

    Redis底层原理篇

    2024年02月17日
    浏览(35)
  • Redis高可用系列——Set类型底层详解

    Redis是一种高性能的键值型数据库,它支持多种数据结构,其中一种是set类型。set类型可以存储一个无序的、不重复的字符串集合,类似于Java中的HashSet或Python中的set。set类型的优点是可以对集合进行快速的添加、删除、判断是否存在等操作,以及对多个集合进行交集、并集、

    2024年02月03日
    浏览(44)
  • 【自学笔记】01Java基础-08Java常用API:03日期类详解

    记录Java基础-常用API-有关时间日期的类。 1.1 什么是Date类 Date 类位于 java.util 包中,代表当前所在系统的日期时间信息或表示特定的瞬间,精确到毫秒。 这个类在早期版本的 Java 中被广泛使用,但由于其功能和设计的局限性,自Java8起,推荐使用 java.time 包中的新日期和时间

    2024年01月22日
    浏览(36)
  • 【量化课程】08_1.机器学习量化策略基础实战

    1.1 回归模型 线性回归 多层感知器回归 自适应提升树回归 随机森林回归 1.2 分类模型 线性分类 支持向量机 XGBoost分类 K近邻分类 1.2.1 SVC介绍 SVC(Support Vector Classifier)是一种在机器学习中常用的分类算法,它基于支持向量机(Support Vector Machine)算法。SVC通过寻找最佳的超平

    2024年02月13日
    浏览(40)
  • 【量化课程】08_2.深度学习量化策略基础实战

    深度学习是模拟人脑进行分析学习的神经网络。 深度神经网络(DNN) 卷积神经网络(CNN) 马尔可夫链(MC) 玻尔兹曼机(BM) 生成对抗网络(GAN) 长短期记忆网络(LSTM) 2.1 LSTM 介绍 长短期记忆网络(LSTM)是一种常用于处理序列数据的循环神经网络(RNN)的变体,被广泛应用于自然语言处

    2024年02月13日
    浏览(45)
  • 分叉币的发展史及价值|ETH、BCH、BSV 2020-03-08

      昨天有人问我比特币、BCH、BSV和ETH的价值,在这几个币中除了比特币,其它几个币有一个共同的特性,那就是它们都是分叉币,所以看到这个问题,我想到一个话题:分叉币的价值。   在数字货币中我们也能经常看到“分叉币”,越是知名的数字货币越容易出分叉币。那为

    2024年02月13日
    浏览(46)
  • 微服务springcloud 03.Eureka实现高可用

    01.运行时候项目图 存在两个item service,和两个Eureka注册中心 02.在已有的项目中扩展service服务数量(item service的数量变成两个) 第一步:配置item service的启动参数 启动参数的优先级要高于yml文件的优先级 具体参数是:–server.port=8001 name是修改启动后项目名称,修改为sp02-i

    2024年02月09日
    浏览(40)
  • ChatGPT实战100例 - (08) 数据库设计转化为SQL并获取ER图

    在你还在手撸SQL?ChatGPT笑晕在厕所 这篇博文中 针对经典3表设计: 学生表 S(SNO,SNAME,AGE,SEX),其属性表示学生的学号、姓名、年龄和性别; 选课表 SC(SNO,CNO,GRADE),其属性表示学生的学号、所学课程的课程号和成绩; 课程表 C(CNO,CNAME,TEACHER),其属性表示课程

    2024年02月10日
    浏览(48)
  • 架构师必会之-DBA级问题的数据库底层设计思想

    大家经常也在调侃后端好像就是技术数据库的增删改查,所以作为后端开发,你对应数据库这一块掌握的怎么样,是非常能看出你整个开发的技术能力水平。 接下来就分享 3 个我之前问到的关于数据库的 3 个问题。 第一个问题就是如果一个事务当中有更新操作,也有查询操

    2024年02月10日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包