极客专栏-从0开始学架构
2022-05-20 15:26:59 21 举报
AI智能生成
从0开始学架构 思维导图 待完成
作者其他创作
大纲/内容
高可用架构
主机负责「读写」;负责同步数据到从机
从机负责「读」;
一主多从
问题:业务数据被写入「主机」还没来得及同步,直接到「从机」中读,失败。
1. 写操作后的读操作指定必须从「主机」读(业务实现复杂)
2. 读「从机」失败后,再读一遍「主机」
3. 关键业务全部指向「主机」,非关键采用「读写分离」
主从复制延迟
如果主从发生切换,所有业务系统都要修改配置
程序代码封装(和业务结合,简单灵活)
中间件提供标准的SQL接口,就像一个数据库一样服务
中间件封装(通用性强)
分配机制
技术细节
读写分离
实现:按照业务将诸如「用户」「商品」「订单」存入不同数据库中
1. Join问题,进行多表联合查询时,无法使用Join
2. 事务问题:分布式事务性能太低
分库
横向分表和纵向分表
纵向:用于离线数据分析
没说实现???????????????
分表
分库分表
高性能Mysql集群
关系型数据库的毛病
Redis没法支持严格的ACID原则
K-V存储
MongoDB使用JSON存储
不支持事务
无法实现Join操作
文档数据库
HBase
列式数据库
倒排索引
全文搜索引擎
NoSQL分类
高性能NoSQL
优点
缓存穿透
缓存雪崩
有没有讲实现????????
架构要点
高性能缓存
每个请求一个进程
prefork:把需要使用的进程先创建出来
PPC
每个请求一个线程
prethread
TPC
分配一个进程池,一个进程可以处理多个连接业务
Redis
单Reactor 单进程/线程
单Reactor 多线程
Nginx
Memcache
Netty
多Reactor 多进程/线程
Reactor
Proactor
单服务器高性能
DNS服务器根据Client的IP,返回一个最近的服务器IP
DNS负载均衡
F5 or A10
硬件负载均衡
LVS
软件负载均衡
轮询
加权轮询
哈希
哈希环
负载算法
负载均衡
高性能架构
架构
0 条评论
下一页