高性能架构模式

栏目: 后端 · 发布时间: 5年前

内容简介:主从复制延迟

点击蓝色“ 乔志勇笔记 ”关注我哟

加个“ 星标 ”,第一时间获取推送的文章哦

一、高性能数据库集群

(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开始学架构

近期文章:

如何开始架构设计

微服务架构————基本组件

微服务实战问题

微服务架构进阶

秒杀系统设计

分布式数据一致性理解

5种分布式锁实现的对比?

Java并发编程学习体系

java8 Stream 史上最全总结

Java 网络编程"初探"

redis 知识点总结

java 核心技术学习总结 (一)

spring中"投机取巧"地限制 用户同时登陆

如果你喜欢本文

请长按二维码,关注 乔志勇笔记

高性能架构模式


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

啊哈C!思考快你一步

啊哈C!思考快你一步

啊哈磊 / 电子工业出版社 / 2013-9 / 39.00元

这是一本非常有趣的编程启蒙书,全书从中小学生的角度来讲述,没有生涩的内容,取而代之的是生动活泼的漫画和风趣幽默的文字。并配合超萌的编程软件,从开始学习与计算机对话到自己独立制作一个游戏,由浅入深地讲述编程的思维。同时,与计算机展开的逻辑较量一定会让你觉得很有意思。你可以在茶余饭后阅读本书,甚至蹲在马桶上时也可以看得津津有味。编程将会改变我们的思维,教会我们如何思考,让我们的思维插上计算机的翅膀,以......一起来看看 《啊哈C!思考快你一步》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换