关键词:
吞吐量: 单位时间内处理的请求数
TPS: 每秒处理的事务数
QPS: 每秒处理的查询次数
三个方法论
1.Shared Everthing
针对单个系统,完全共享CPU,Memory,磁盘系统,这样并行处理能力最差,比如SQLServer
2.Shared Nothing
不存在共享资源,并行和扩展能力更好,比如hadoop
3.Shared Disk
各个处理单元,使用私有的CPU,Memory,但是使用共公有的disk
纵向扩展:
扩展一个点的能力支撑更多的请求,类似于螳臂当车:
两种方式:
1. 提升硬件性能
比如CPU,内存大小,更好性能的网卡
2. 提升单机架构性能
读多写少,用cache;读少写多,使用消息队列,异步更新,比如kafka,RMQ
使用无锁算法,比如CAS
分区就是PARTITION, RANGE分区,就是比如把表的数据按时间分成,70年代,80年代,90年代的数据,HASH分区,就是把表的数据根据HASH值的不同分成不同的区
横向扩展
用更多的节点支撑更大的请求,类似于蚂蚁搬家,主要有4种方式:
1.主从复制
主库用来读写,从库用来读,提升读性能
2.分库分表 (数据分片 sharding)
分库、分表、达到线性扩展的目的
3.数据库中间件
比如rmq,kafka,来达到读写分离的目的
4.集群
使用集群来弥补单机性能的不足(这里忽然想到分布式和集群的区别,分布式就是不同机器上面部署着不同的服务,而集群就是不同机器上面部署着相同的服务)
主从复制
是最常用的技术,可以扩展出很多的从库,从而减轻主库负担,能够实现读写分离
缺点:如果写过多,主库成为性能瓶颈,从库数据容易不一致
为了解决这个缺点,就得想办法做sharding
数据分片
1.垂直分片
其实就是按column列分片,某几列属于同一片,另外几列属于另一片,比如把一个表的12列(12个字段)分成3个小片,每片4列
2. 水平分片
就是不修改表结构,比如按时间来进行拆分,比如2021年1月1日之前的数据存在A库,之后的存在B库
虽然sharding很好用,但是这样会加大业务代码的复杂性,而且单个shard失效可能会导致整个系统不可用(这种情况,就得考虑主从复制,对每个shard都备份一个或者多个从库)
分区是库内的,分片是库外的
数据库中间件
需要多注意,主从复制的各种小分类
不同主从复制的开启方法
集群架构, 这个我真看不懂。。。。
成为架构师课程系列高并发系统设计的三大目标:高性能高可用可扩展
...可能听到最多的词儿就是 三高,也就是 高并发、高性能、高可用,它们是互联网系统架构设计永恒的主题。在前两节课中,我带你了解了高并发系统设计的含义,意义以及分层设计原则,接下来,我想带你整体了解一下... 查看详情
mysql复制与高可用水平扩展架构实战(代码片段)
...什么是MySQL复制1、什么是复制MySQL的复制是构建大规模、高性能应用程序的基础,称为“水平扩展”架构。生产环境通常为服务器配置一个或多个备用数据库以同步数据。复制是将一台服务器(即MySQL数据库)的数据... 查看详情
分布式文件系统fastdfs如何做到高可用
...冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服 查看详情
分布式文件系统fastdfs如何做到高可用
...冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服 查看详情
第1天三篇mysql管理之道(性能调优高可用与监控)
...器和高度并发CPU线程的系统上,提供更持续的线性性能和扩展性。实现这一点的关键是通过OracleInnoDB存储引擎的效率的并发性,来消除InnoDB内核争用和互斥锁定的现象。 在OLTP只读模式下,MySQL5.7比MySQL5.6性能提... 查看详情
高性能高可用高扩展erp系统架构设计
ERP之痛 曾几何时,我混迹于电商、珠宝行业4年多,为这两个行业开发过两套大型业务系统(ERP)。作为一个ERP系统,系统主要功能模块无非是订单管理、商品管理、生产采购、仓库管理、物流管理、财务管理... 查看详情
一个高扩展高可用高负载的应用架构的诞生记(原创)
...过实现一个用户中心的应用来模拟一个高可用、高扩展、高性能的架构环境。目录结构1、需求分析2、功能设计3、技术要求4、技术准备1)git版本控制2) 前端css/vue3)node4)nginx5)memcache/redis6)mysql/mongodb/hbase7)docker 查看详情
java架构师高性能高并发高可用高可扩展性能优化集群电商网站架构
15套java架构师、集群、高可用、高可扩展、高性能、高并发、性能优化、Springboot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战视频教程 视频课程内容包含:高级Java架构师包含:Springboot、Spring cloud、Dubbo、Redi... 查看详情
mysql复制与高可用水平扩展架构实战(代码片段)
...什么是MySQL复制1、什么是复制MySQL的复制是构建大规模、高性能应用程序的基础,称为“水平扩展”架构。生产环境通常为服务器配置一个或多个备用数据库以同步数据。复制是将一台服务器(即MySQL数据库)的数据... 查看详情
jetbrick,新一代java模板引擎,具有高性能和高扩展性
新一代Java模板引擎,具有高性能和高扩展性。<!--JetbrickTemplateEngineer--><dependency><groupId>com.github.subchen</groupId><artifactId>jetbrick-template-springmvc</artifactId><versi 查看详情
《重学java高并发》disruptor是如何做到百万级吞吐?
Disruptor是业界非常出名的单机版高性能队列,官方宣传能达到百万级吞吐,那disruptor是如何做到的呢?其核心秘诀如下:破除伪共享对象池无锁化设计批处理上面这些观点,网上已经提了N遍,没关系,... 查看详情
《重学java高并发》disruptor是如何做到百万级吞吐?
Disruptor是业界非常出名的单机版高性能队列,官方宣传能达到百万级吞吐,那disruptor是如何做到的呢?其核心秘诀如下:破除伪共享对象池无锁化设计批处理上面这些观点,网上已经提了N遍,没关系,... 查看详情
大厂都是如何对高并发系统做性能优化的?(代码片段)
1导读高并发系统的奥义:高性能、高可用、可扩展。性能反应了系统的使用体验都是上万QPS的系统,一个响应时间毫秒级,一个秒级,用户体验明显不同可用性则表示系统可以正常服务用户的时间上万QPS的系统... 查看详情
spring从入门到精通
...增加代码,但是可以不修改原来的代码的程序。 如何让程序的可维护性好,可扩展性好呢?业界有一个公认的标准,高内聚,低耦合。 高内聚 查看详情
mysql管理之道:性能调优高可用与监控pdf扫描版[61mb]完整版下载
...由资深MySQL专家撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服务器性能和服务监控等方... 查看详情
6.2mysql主从复制
主从复制架构和原理服务性能扩展方式向上扩展垂直扩展向外扩展横向扩展MySQL的扩展读写分离复制:每个节点相同的数据库,向外扩展,基于二进制日志的单向复制复制的功能数据分布负载均衡读备份高可用和故障切换MySQL升... 查看详情
互联网三高架构:高并发高可用高性能
面向互联网的三高系统,最关注的软件质量属性是:性能、可用性、伸缩性、扩展性、安全性。而构建此类系统,最常见的架构模式有:横向分层、纵向分割、分布式化、集群化、使用缓存、使用异步模式、使用冗余、自动化(... 查看详情
高可用架构设计es+redis+mysql
...影响fanwei是全公司所有业务线。所以,会员系统必须保证高性能、高可用,提供稳定、高效的基础服务。随着同程和艺龙两家公司的合并,越来越多的系统需要打通同程APP、艺龙APP、同程微信小程序、艺龙微信小程序等多平台会... 查看详情