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