大型网站核心架构要素

软件架构指的是,有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计。
1.性能
在浏览器端
a.通过浏览器缓存、使用页面压缩、合理布局页面、减少Cookie传输等手段改善性能;
b.可以使用CDN,将网站静态内容分发至离用户最近的网络服务商机房,使用户通过最短访问路径获取数据;
c.在网站机房部署反向代理服务器,缓存热点文件,加快请求响应速度,减轻应用服务器负载压力。

在应用程序段
a.使用服务器本地缓存和分布式缓存,通过缓存在内存中的热数据处理用户请求,加快请求处理过程,减轻数据库负载压力。
b.通过异步操作将用户请求发送至消息队列等待后续任务处理,而当前请求直接返回响应给用户。
c.采用分布式集群的方式,利用负载均衡,提高整体处理能力,改善性能。

在代码层面
通过使用多线程、改善内存管理等手段优化性能

在数据层面
使用索引、缓存、SQL优化等手段进行性能优化

2.可用性
几乎所有网站都承诺724可用,但事实上任何网站都不可能达到完全的724可用。
高可用主要手段就是冗余,应用应部署在多台服务器上同时提供访问,数据存储在多台服务器上相互备份,
从而实现任何一台服务器宕机都不影响应用的整体可用,也不会导致数据丢失。

同时可以通过预发布验证、自动化测试、自动化发布、灰度发布等手段,减少将故障引入线上环境的可能,避免故障范围扩大。

3.伸缩性
伸缩性是指通过不断向集群中加入服务器的手段不断上升的用户并发访问压力和不断增长的数据存储需求。
衡量系统伸缩性的标准:
1.是否可以用多台服务器构建集群
2.是否容易向集群中添加新的服务器(加入新节点的平滑性)
3.加入新的服务器是否可以提供和原来的服务器无差别的服务。
4.集群中可容纳的总的服务器数量是否有限制

对于应用服务器集群,只要服务器上不保存数据,所有服务器都是对等的,通过使用合适的负载均衡设备就可以像集群中不断加入服务器。
对于缓存服务器集群,首先要考虑到数据同步问题,以及缓存失效策略,需要改进缓存路由算法保证缓存数据的可访问性。
对于数据库服务器集群:

  • 关系数据库虽然支持数据复制,主从热备等机制,但是其伸缩性只能借助其他工具,通过路由分区等手段形成集群。
  • NoSQL 天生具有良好的伸缩性

4.扩展性
网站的扩展性直接关注网站的功能需求,即添加新功能
衡量系统扩展性的标准:
1.在网站添加新的业务产品时,是否可以实现对现有产品透明无影响
2.是否可以改动很少就可以实现新功能

网站的可扩展的手段主要有

  • 事件驱动架构:利用消息队列,将消息生产和消息处理分离开来,可以透明地增加新的消息生产者任务或者消息消费者任务。
  • 分布式服务:业务之间通过分布式服务框架来进行相互调用,从而降低系统耦合度。

5.安全性
衡量网站安全性的标准:
针对现存和潜在的各种攻击和窃密手段,是否有可靠的应对策略。

大型网站架构之大型网站核心架构要素相关推荐

  1. php的核心架构如下图,thinksns 核心架构及目录结构

    核心与服务.公共Model.插件.Widget.第三方类库共同构成了系统的大根基,其他所有应用都其上构建. 术语解释 核心:源自ThinkPHP框架,为系统提供MVC分离.底层数据库支持等核心功能,并 ...

  2. 《大型网站技术架构》读书笔记三:大型网站核心架构要素

    来源:http://www.cnblogs.com/edisonchou/p/3806348.html 此篇已收录至<大型网站技术架构>读书笔记系列目录贴,点击访问该目录可获取更多内容. ...

  3. 阿里P7架构师要求:Web核心+开源框架+大型网站架构!含面试题目!

    阿里P7技能(一):数据结构和算法: 常用数据结构:链表.堆与栈.哈希表等,常用的排序等. 掌握:精通 阿里P7技能(二):java高级 java相关的高级特性:JVM.多线程高并发.网络等. 掌握: ...

  4. 《大型网站技术架构》读书笔记[3] - 架构核心五要素

    架构设计中要考虑的核心五要素: 性能.可用性.扩展性.伸缩性.安全性 性能 性能的测试指标 响应时间 应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间.响应时间是系统最重要 ...

  5. 5 大型网站核心架构要素

    关于什么是架构,一种比较通俗的说法是"最高层次的规划,难以改变的决定",这 些规划和决定奠定了事物未来发展的方向和最终的蓝图. 从这个意义上说,人生规划也是一种架构.选什么学校.学 ...

  6. 大型网站核心架构要素

    目录 大型网站核心架构要素 1.性能 2.可用性 3.伸缩性 4.扩展性 5.安全性 大型网站核心架构要素 软件架构需要关注的架构要素:性能.可用性.伸缩性.扩展性.安全性 1.性能 可优化性能的环节 ...

  7. 大型网站核心架构要素--扩展性

    网站的扩展性架构直接关注网站的功能需求,因为功能不断扩展,网站要能快速响应需求变更. 网站可扩展架构的主要手段是事件驱动架构和分布式服务. 事件驱动架构主要通过消息队列实现. 分布式服务则是将业务和可 ...

  8. 《大型网站技术架构》——第三章 大型网站核心架构要素

    系统的各个重要组成部分及其关系构成了系统的架构. 系统功能 性能 响应 很多时候网站性能问题是网站架构升级优化的触发器. 浏览器端:浏览器缓存.页面压缩.合理布局页面.减少Cookie传输 CDN:将 ...

  9. 型网站的架构设计问题----大型高并发高负载网站的系统架构

    随着中国大型IT企业信息化速度的加快,大部分应用的数据量和访问量都急剧增加,大型企业网站正面临性能和高数据访问量的压力,而且对存储.安全以及信息检索等等方面都提出了更高的要求-- 本文中,我想通过几个 ...

最新文章

  1. HTTPPost/AFNetWorking/JSONModel/NSPredicate
  2. Prolog基本程序
  3. ubuntu16.04 编译opencv4和opencv_contrib
  4. Chrome浏览器常见问题及解决方案集锦
  5. matlab教程蚁群算法,蚁群算法怎样用MATLAB仿真
  6. lda进行图片分类_基于SIFT+Kmeans+LDA的图片分类器的实现
  7. PHP判断文件夹是否存在和创建文件夹的方法
  8. 利用自定义注解,AOP + redis限制ip访问接口次数
  9. JVM-类加载、GC回收机制
  10. python 读grid 数据_如何将TextGrid文件的变量读入Python?
  11. BNU 鸣人的查克拉
  12. 中兴JAVA编程题_最新中兴Java语言笔试真题及答案
  13. Linux下sopcast
  14. C++ 分配器 allocator
  15. idea创建Springboot项目时,出现Error:java: 读取C:\Users\HP\.m2\repository\com\vaadin\external\google\android-js
  16. CodeWars刷题笔记
  17. VUEX模块化不同模块调用其它模块的mutations报错: [vuex] unknown mutation type: XXX
  18. 【大数据运维监控】Prometheus水平扩展Cortex的架构分析
  19. RS485硬件标准1-电平定义
  20. Chatgpt如此博学,他有老师吗

热门文章

  1. android studio 生成签名文件
  2. 3:bond定价基础之收益率曲线
  3. 高速公路桥梁路段安全形势及管理对策研究
  4. EasyExcel填充web下载
  5. 戴尔灵越 14 Plus2023参数 戴尔灵越 14 Plus2023评测 怎么样
  6. 修改下hosts文件,提高百度云管家下载速度的方法!
  7. 如何在网页标题栏中插入图片图标
  8. 使用node批量抓取并保存 rosi小姐姐写真图片
  9. 人工智能发展的双刃剑
  10. videojs播放监控