内容简介:主从复制延迟
点击蓝色“ 乔志勇笔记 ”关注我哟
加个“ 星标 ”,第一时间获取推送的文章哦
一、高性能数据库集群
(1)读写分离
主从复制延迟
1、写操作后的读操作指定发给数据库主服务器
2、读从机失败后再读一次主机
3、关键业务读写操作全部指向主机,非关键业务采用读写分离
分配机制
1、程序代码分装
2、中间件封装
(2)分库分表
二、高性能nosql
-
K-V 存储:解决关系数据库无法存储数据结构的问题,以 Redis 为代表。
-
文档数据库:解决关系数据库强 schema 约束的问题,以 MongoDB 为代表。
-
列式数据库:解决关系数据库大数据场景下的 I/O 问题,以 HBase 为代表。
-
全文搜索引擎:解决关系数据库的全文搜索性能问题,以 Elasticsearch 为代表。
三、高性能缓存架构
1、缓存穿透
2、缓存雪崩
设计方式:后台定时更新+业务消息队列通知更新
3、缓存热点
实现方式: 针对缓存热点复制多份缓存副本
四、单服务器高性能模式 -并发模型
1、ppc (process per connection)
同步阻塞
优化:ppc + prefork
2、tpc(thread per connection)
同步阻塞
优化:tpc + prethread
小结:
ppc与tpc 适用场景 :
ppc与tpc是阻塞io/bio
常量连接海量请求情形,比如数据库,activemq 的bio模式可以用
常量连接常量请求 情形 企业内部系统
3、Reactor/Dispatcher 模式
形象描述:来了事件我通知你,你来处理
nio 同步非阻塞 ,io 多路复用统一监听事件,收到事件后分配(dispatch)给某个进程
典型实现方案:
(1)单reactor单进程/线程
只适用于业务处理非常快速的场景,例如单 Reactor 单进程redis
(2)单reactor多线程
应用举例:java 的nio,消息队列设计
(3)多reactor多进程/线程
应用举例:多reactor多进程的nginx,多reacotr多线程的netty,memcache
(4)proactor模式
aio
形象描述:来了事件我来处理,处理完了我通知你
Windows 下通过 IOCP 实现了真正的异步 I/O,而在 Linux 系统下的 AIO 并不完善
海量连接海量请求
小提示:IO操作分两个阶段 1、等待数据准备好(读到内核缓存) 2、将数据从内核读到用户空间(进程空间) 一般来说1花费的时间远远大于2。 1上阻塞2上也阻塞的是同步阻塞IO 1上非阻塞2阻塞的是同步非阻塞IO,这讲说的Reactor就是这种模型 1上非阻塞2上非阻塞是异步非阻塞IO,这讲说的Proactor模型就是这种模型
五、集群高性能模式-负载均衡
(1) 架构
1、dns 负载均衡
优化:http-dns 适合cs模式,替换现有基于udp的dns协议
2、硬件负载均衡
3、软件负载均衡
lvs 或nginx
(2) 算法
轮询 、加权轮询、负载最低、性能最优、hash类
参考:李运华的从0开始学架构
近期文章:
如果你喜欢本文
请长按二维码,关注 乔志勇笔记
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 入门架构——单机高性能
- 【架构入门 - 高性能篇】集群高性能
- 亿级流量系统架构之如何设计承载百亿流量的高性能架构【石杉的架构笔记】
- 腾讯QQgame高性能服务器集群架构看分布式架构设计原则
- 『互联网架构』软件架构-netty高性能序列化协议protobuf(57)
- 【架构入门 - 高性能篇】数据库高性能
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。