高性能架构模式

栏目: 后端 · 发布时间: 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中"投机取巧"地限制 用户同时登陆

如果你喜欢本文

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

高性能架构模式


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

查看所有标签

猜你喜欢:

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

软件的奥秘

软件的奥秘

[美] V. Anton Spraul / 解福祥 / 人们邮电出版社 / 2017-9-1 / 49

软件已经成为人们日常生活与工作中常见的辅助工具,但是对于软件的工作原理,很多人却不是非常了解。 本书对软件的工作原理进行了解析,让读者对常用软件的工作原理有一个大致的了解。内容涉及数据如何加密、密码如何使用和保护、如何创建计算机图像、如何压缩和存储视频、如何搜索数据、程序如何解决同样的问题而不会引发冲突以及如何找出最佳路径等方面。 本书适合从事软件开发工作的专业技术人员,以及对软件工作......一起来看看 《软件的奥秘》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具