当前位置: 首页 > news >正文

大型分布式架构设计

大型网站的特点

大型网站架构技术

 

 大型网站架构技术-架构模式

大型网站架构技术-高性能架构

以用户为中心,提供快速的访问体验。主要体现在:响应快、并发能力高和性能稳定。

 

大型网站架构技术-高可用架构 

大型网站在任何时候都应该可以正常访问,但是因为大型网站的复杂性,要保证高可用是很困难的。

行业内一般用几个9表示可用性指标,比如99.99%

即不可用时间:0.01%*365*24*60=52.56分钟/

大型系统架构演进过程-应用程序、数据库都部署在同一台服务器上

大型网站(如天猫、京东等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,所以成熟的系统架构是随着业务的扩展而逐步完善的

 

大型系统架构演进过程-应用程序数据库分离

随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。

 

大型系统架构演进过程-利用缓存改善网站性能

在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),所以我们可以对热点数据进行缓存,减少数据库查询次数,提高用户体验。

分布式缓存的特点是,可以缓存海量的数据,并且扩展非常容易

大型系统架构演进过程-使用集群改善应用服务器性能

应用服务器作为网站的入口,会承担大量的请求,我们往往通过应用服务器集群来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将请求分发到多个应用服务器节点。

 大型系统架构演进过程-使用分布式文件系统 

随着用户增加,业务量越来越大,产生的文件越来越多,文件相关操作的IO瓶颈开始出现,这时就需要分布式文件系统的支撑。

常用的分布式文件系统有HDFS、TFSGFSMINIO

大型系统架构演进过程-使用NoSQL和搜索引擎

对于海量数据的查询和分析,我们使用NoSQL数据库加上搜索引擎可以达到更好的性能。

并不是所有的数据都要放在关系型数据中

常用的NoSQL有MongoDB、HBase、Redis,搜索引擎有Lucene、Solr、Elasticsearch。

大型系统架构演进过程-将应用服务器进行业务拆分

随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分。

每个业务应用负责相对独立的业务运作。业务之间通过远程调用来实现。

大型系统架构演进过程-消息队列

由于系统用户量极大,在做抢购,秒杀的活动的时候,可能参与的人很多,服务器可能承受不了那么高的并发。

消息队列其实就是一个队列结构的中间件,也就是说把消息和内容放入到一个容器后,就可以直接的返回了,

不理会等它后期处理的结果,容器里的内容会有另一个程序按照顺序进行逐个的去处理。

消息队列的主要作用:解耦、削峰、异步

 评估系统的承载能力-系统评估

 推荐教程:后端进阶关键-大型分布式架构设计

http://www.lryc.cn/news/44015.html

相关文章:

  • 基于springboot实现校园在线拍卖电商系统【源码】
  • SaaS智慧校园源码,电子班牌管理系统 人脸考勤、综合评价系统、请假管理、校务管理
  • MONGODB mongodb 一般人不知道的数据类型与使用
  • 蚁群算法优化
  • 山东首版次申报的材料
  • 个人时间管理网站—首页的前端实现【源码】
  • Python毕业设计推荐
  • 使用nodemon时报错:“无法加载文件...,因为在此系统上禁止运行脚本“;windows执行策略修改
  • 网络协议分析期末复习(五)
  • 外贸找客户软件:Yellow Page Spider 8.7.1 Crack
  • 博客管理系统(前端页面设计)
  • 安装yolov5环境
  • IP 归属地查询 API 教你从0到1顺着网线找到键盘侠
  • 【K8S系列】深入解析Pod对象(二)
  • 从3千到3万,我的测试之路真的坎坷
  • linux下使用system函数在程序中运行linux的shell命令
  • 银行数字化转型导师坚鹏:银行业发展趋势及对人才的需求分析
  • NFS挂载
  • IDEA使用技巧
  • 自动化测试之一【接口测试总结】
  • 科大奥瑞物理实验——傅里叶光学
  • mysql count(*)的性能如何?
  • gan实战(基础GAN、DCGAN)
  • 使用C语言实现服务器/客户端的TCP通信
  • AI模型训练推理一定要知道的事情
  • SPSS27破解安装后,出现应用程序无法正常启动(0xc000007b)
  • 央企程序员写了重大bug,会造成用户个人信息泄露,领导已经知道了,需要赶紧跑路吗?...
  • day14—选择题
  • 翻转链表(力扣刷题)
  • JavaEE——锁相关