高并发架构设计学习总结
设计目标
打造一个高可用、高性能、易扩展、可伸缩性强的应用系统。
架构分类
1.业务架构,如何分拆模块,如何大团队协作,快速高效满足业务迭代,微服务
2.性能架构:高并发架构,高负载架构,架构武器
软件应用分为
架构设计,程序,数据结构,算法
常用设计方向
流量分流:nginx负载均衡,反向代理
静态化:前端页面静态化,js,css压缩为一个文件,浏览器缓存,启用压缩,css先加载,js后加载
cdn分流:资源部署cdn,分布式部署,内网通信,分布式文件系统
缓存:redis多级缓存,加快运算速度,在Redis 中做活动库存扣减,并以一定周期同步给数据库:
异步化操作:消息队列,应用解耦,消除并发访问高峰,异步化异步写入数据库,可以起到很好的削峰作用
服务化:使用引擎,常驻内存应用,rpc调用,全文搜索引擎,zk+dubbo,php+go,
应用独立部署:(应用集群)web与数据库分离,redis分离,后台与前台分离,请求与备份统计分离
数据库集群:mysql集群mycat,读写分离/分表分库,主从互备,索引使用,innodb事务提交,大数据hadoop,日志分析
安全:让你拿不到数据库,权限控制,服务器跳板登录,熔断保护:攻击,高流量停掉,容灾/容错,基线构建
资源复用:单例和对象池
服务器的优化手段
主要有缓存,集群,异步等。
资源复用主要有两种模式:单例和对象池。
网站架构的伸缩性设计
一般来说。网站的伸缩性设计可分为两类:
一类是根据功能进行物理分离实现伸缩,一类是单一功能通过集群实现伸缩。
前者是不同的服务器部署不同的服务,提供不同的功能;
后者是集群内的服务器部署相同的服务实现相同的功能。
也就这些
应用集群,多级缓存,单点登录,数据库集群,服务化,消息队列外。还有CDN,反向代理,分布式文件系统,
大数据处理等系统。
浙公网安备 33010602011771号