高性能架构模式

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

内容简介:主从复制延迟

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

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

一、高性能数据库集群

(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中"投机取巧"地限制 用户同时登陆

如果你喜欢本文

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

高性能架构模式


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

查看所有标签

猜你喜欢:

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

鸟哥的Linux私房菜 基础学习篇(第二版)

鸟哥的Linux私房菜 基础学习篇(第二版)

鸟哥 / 人民邮电出版社 / 2007-9 / 65.00元

《鸟哥的Linux私房菜基础学习篇(第二版)》全面而详细地介绍了Linux操作系统。全书分为5个部分:第一部分着重说明Linux的起源及功能,如何规划和安装Linux主机;第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;第四部分介绍了对于系统安全非常重要的Linux账号的管理......一起来看看 《鸟哥的Linux私房菜 基础学习篇(第二版)》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具