写点什么

架构实战营模块四总结

用户头像
竹林七贤
关注
发布于: 2021 年 05 月 17 日

一、数据库存储架构

1.数据库读写分离架构


数据库读写分离,复制延迟的解决办法:

a.读写绑定:写操作后的读操作指定发给数据库主服务器

b.二次读取:读从机失败后在读取一次主机

c.业务分级:关键业务读写操作全部指向主机,非关键业务采用读写分离

使用 Sharding JDBC 进行程序代码封装

中间件封装

2.数据库分库分表架构

数据库分库带来的问题:

a.join 问题:原本在同一个数据库中的表分散到不同的数据库中,导致无法使用 SQL 的 join 进行查询。解决方法:小表冗余;代码 join;字段冗余;

b.事务问题:表分散到不同的数据库中,无法通过事务统一修改;方法:通过分布式事务解决

数据库分表

水平拆分:按行拆分,提升系统性能;水平分表伸缩瓶颈,当 MYSQ 连接在 50 到 100 之间时,性能最高。

垂直拆分:按列拆分,提升单机性能

3.数据库分布式事务算法

2PC :2 阶段

3PC:  3 阶段

外部 XA:跨多 MYSQL 实例的分布式事务,由应用程序代码作为 2PC 的事务协调者

内部 XA:跨同一实例多存储引擎的事务,由 binglog 作为 2PC 的事务协调者

4.万事不绝 spring, 选择太多 APACHE


二、存储架构模式—复制架构

1.高可用关键指标


2.主从 &主备架构(需要人工切换)

Redis 是主从架构,由 master 和 slave 组成,任务分解由客户端 Jedis 或 redition 进行,

3.双机切换架构(自动切换)

应用于内部系统和管理系统,读写请求量小,

4.集群选举架构

当主机发生故障时,可以通过选举,产生新的主机。

Redis 采用 sentinel 监控各个节点,sentinel 通过 raft 算法进行选举。

Mongdb 通过 bully 算法进行选举


5.四个算法比较

Bully:谁的 ID 最大或最小,最当老大,elasticsearch 用到;

Raft:分布式一致协议,mogodb 用到;

Zab:分布式一致协议,zookeeper 用到;

Paxos:分布式一致协议,oceanbase 用到;

 

6.zookeeper 在 HDFS 中的应用

基于 zookeeper 进行双机切换或集群选举

三、分片架构和分区架构

1.通过叠加服务器,提升写性能和存储性能

2. 分片规则:数据按什么规则分片

       核心原则:选择基数比较大的某个数据键值,让数据均匀分布,避免热点分片

       主键:适合主业务数据,例如用户 ID,订单 ID,

       分片规则:hash 分片

3. 路由规则:业务服务器如何找到数据

静态路由:配置文件

动态路由:配置中心;路由转发

2.路由转发

4.独立备份和相互备

5.分区架构:分区到不同城市

DNS:标准协议,通用,但基本只能实现就近接入的路由

GSLB:非标准,需要独立开发部署,功能非常强大,可以做状态监控、基于业务规则的定制路由。

6. 集中式、互备式和独立式

 

四、如何设计存储架构

1.架构设计三个步骤

       a.估算性能需求:存储量、读写性能

       b.选择存储系统:根据技术储备和方案优缺点

       c.设计存储方案:设计具体的存储方案

2.估算存储所需性能

用户量预估--->用户行为建模----->性能需求计算

3.用户量估计:规划--->推算-->对比

4.用户行为建模:行为、数量和频率

5.存储性能估算:数据量、请求量和预留量

6.存储架构选择

7.常见的存储系统

8.如何选择合适的存储系统

技术本质(挑选应用场景和系统本质契合的系统)à技术储备(挑熟悉的)à综合考虑(可维护性、成本和成熟度)

9.如何设计存储方案

Redis 粉丝数量存储

设计数据结构----验证读写场景----评估读写性能

 

五、常见的存储系统

1.理解技术本质------明确部署架构------研究数据模型-----模拟业务场景

 

2.redis

Database;  cache;   message broker

单机 TPS:5~10 万

技术本质:主从复制,读写分离,master 故障时,sentinel 自动切换。

支持 5 种数据类型:Set;   sorted set;  hash table ;  linked list ;  string

使用案例:关注列表,使用关注时的 timestamp 作为 score,使用 sorted set 结构存储

3.Hbase

非关系型数据,基于 hadoop hdfs,底层结构 LSM

每秒插入 7 万条,读取 2.5 万条,扫描 100 条以内记录,每秒 1.5 万条。

HBase 部署架构:

技术本质----分片集群;ZooKeeper 做 HMaster 切换,RegionServer 由 Hmaster 管理

数据模型

4.HDFS

分布式文件存储,带宽是瓶颈。

部署架构

5.Clickhouse

Column-oriented:列式存储(读取性能高); DBMS 数据库管理系统; OLAP 场景

OLAP:联机分析处理,执行少量复杂查询,关注吞吐量,很少修改数据。

OLTP:联机事务处理,执行大量增删改查,关注响应速度,高并发、数据一致性。

行式存储:表中的一行记录存储在一个数据块中

列式存储:表中的一列数据存储在一个数据块中

6.Clickhouse 集群架构

分片集群;zookeeper 管理,分片独立复制

用户头像

竹林七贤

关注

还未添加个人签名 2020.08.13 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营模块四总结