中大型网站技术架构演变过程

news/2024/5/14 0:25:59/文章来源:https://blog.csdn.net/Y0Q2T57s/article/details/107398932

Java面试笔试面经、Java技术每天学习一点

Java面试

关注不迷路

作者:汤帅

来源:https://juejin.im/user/5aeea24b6fb9a07aa1141924

1、大型网站的特点

  • 高并发,大流量:PV量巨大。即页面浏览量;用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。

  • 高可用:7*24小时不间断服务。

  • 海量数据:需要储存、管理海量数据,需要使用大量服务器。

  • 用户分布 广泛,网络情况复杂:为全球用户提供服务,用户分布范围广。

  • 安全环境恶劣:黑客攻击多。

  • 需求快速变更,发布频繁:快速适应市场,满足用户需求。

  • 渐进式发展:慢慢地运营出大型网站。


2、大型网站架构演变过程

  • 初始阶段网站架构

一台Server就刚需—应用程序、数据库、文件等所有资源都集中在一台Server上,典型案例:基于LAMP架构的PHP网站。

  • 应用和数据服务分离

三台Server平天下—业务发展,单台不再适应业务的发展,将应用和数据分离后成三台Sever(应用服务器、文件服务器与数据库服务器)。分离后三台Server对硬件资源的需求各不相同:应用服务器需要更快更强大的CPU,而数据库服务器需要更快的硬盘和更大的内存,文件服务器则需要更大的硬盘。

  • 使用缓存改善网站性能

3+N的Server模式—减少数据库访问压力,提高网站的数据访问速度。缓存又可以分为:本地缓存和远程缓存(可以是分布式的),本地缓存访问速度快,但数据量有限;远程分布式缓存可以集群,因此容量不受限制。

  • 使用应用服务器集群改善网站并发处理能力

集群—解决高并发、海量数据问题的常用手段,实现系统的可伸缩性。通过负载均衡调度器,可将用户访问分发到集群中的某台Server上,应用服务器的负载压力不再成为整个网站的瓶颈。

  • 数据库读写分离

随着用户量的增加,数据库成为最大的瓶颈,改善数据库性能常用的手段是进行读写分离以及分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切换则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务不同来切换,如用户业务、商品业务相关的表放在不同的数据库中。

  • 使用反向代理和CDN加速网站响应

CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理则部署在网站的中心机房。使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速度,另一方面也减轻后端服务器的负载压力。

  • 使用分布式文件系统和分布式数据库系统

用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已经不能满足需求。需要分布式的文件系统支撑。

  • 使用NoSQL和搜索引擎

NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

  • 业务拆分

随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、图片等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现。

  • 分布式服务

这时我们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。我们将这些服务抽取出来利用分部式服务框架搭建分布式服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_791478.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6个超酷的网站,专门用于学习编程算法

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路程序员书库(ID:CodingBook) 猿妹编译书单来自:https://levelup.gitconnected.com/6-super-cool-websites-for-practicing-algorithms-learning-programming-4cda65a64b7…

做一个网站多少钱?

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路作者:kimix 的博客来源:kimix.name/做一個網站多少錢?/「一辆车子多少钱?一个房子多少钱?」这问题在工程师或设计师的眼里就如「一辆车子多少钱?…

GitHub网站究竟可不可靠?谷歌工程师教你用BigQuery一探究竟

作者简介:Felipe Hoffa,谷歌开发顾问,来自智利,现工作于旧金山以及全球各地,谷歌Cloud Platform社区编辑。 以独特方式组织的可视化数据往往能够为我们提出一些有趣的观点。Felipe Hoffa最近使用BigQuery结合Reddit近八…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

如何打造一个小而精的电商网站架构?

本文大纲: 1. 小型电商网站的架构 2. 日志与监控系统的解决方案 3. 构建数据库的主从架构 4. 基于共享存储的图片服务器架构 5. 移动M站建设 6. 系统容量预估 7. 缓存系统 一、小型电商网站的架构 刚从传统软件行业进入到电商企业时,觉得电商网站…

全网最全编程学习网站汇总来了,还不赶快收藏

Java面试笔试面经、Java技术每天学习一点公众号Java面试关注我不迷路作者:brightwang来源:https众所周知,程序员是一个需要不断学习的职业,而幸运的是,在这个互联网时代,知识就在那里,等着我们去…

老同学十块钱让我帮做个视频网站,带弹幕那种

Java面试笔试面经、Java技术每天学习一点公众号Java面试关注我不迷路作者:刘滨浩来源:https://binhao.blog.csdn.net/2021年了,还有不支持弹幕的视频网站吗,现在各种弹幕玩法层出不穷,抽奖,ppt都上弹幕玩法…

Drupal 网站漏洞修复以及网站安全防护加固方法

drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境mysql数据库的环境配置,drupal的代码开发较为严谨,安全性较高,但是再安全的网站系统,也会出现网站漏洞,drupal是网站运行访问必不可少…

【Python爬虫系列】为什么我喜欢python?来看看这些让人爱不释手的原因吧,购物网站大盘点,看过这些python做的项目,我立马入坑了…(神奇 | 爱了,爱了)

导语 Python编程零基础如何逆袭成为爬虫实战高手?! 哈喽!我是木木子,你们的贴心小助手。想学习爬虫的小可爱注意啦,一定不要错过哦~ 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利&#x…

oss php sdk+laravel搭建图片处理静态网站

背景和目标 接着上两篇继续写oss php sdklaravel搭建静态网站。 主要说下静态网站的重要部分图片服务,现在很多的网站上都会用到大量的图片, 图片在网页传输中占据很大的数据量, 图片处理也是影响网站性能的重要因素。 这篇文章主要结合oss的图片处理功能介绍如何利…

学习编程有疑问?七个网站助你菜鸟变大牛

很多同学在学习编程时候会遇到各种各样的问题,这些问题需要自己去想办法解决,那么这些网站平台将会给你很大的帮助。 1、W3school 这是一个免费学习编程语言的在线学习网站,里面的知识浅显易懂,非常适合初学者。如果你对编程还不…

前端学习的几个网站

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!1.菜鸟教程:http://www.runoob.c…

【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站

前言 其实 HTTP/2 应该是 2015 年的老话题了(2015 年 5 月 14 日 HTTP/2 协议正式版的发布),但是 2018 年都到了很多网站依旧没有使用,作为新一代互联网协议,HTTP/2 不仅速度比目前常见的 HTTP/1.1 更快,而…

如何优化网站,网站推广优化一般流程

理论上针对不同类型的网站,优化网站的策略是不完全相对,但基于搜索引擎网站排名的原理,对于任何一个网站优化流程,都可以参考如下方法: 1、网站架构设计 在做网站信息架构的时候,我们并不单纯的只是简单的罗…

引路蜂Android技术网站开通了

分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow之前在引路蜂技术博客我们花了大量的篇幅介绍了Android开发的相关…

【面试精选】关于大型网站系统架构你不得不懂的10个问题

该文已加入笔主的开源项目——JavaGuide(一份涵盖大部分Java程序员所需要掌握的核心知识的文档类项目),地址:https://github.com/Snailclimb/JavaGuide 。觉得不错的话,记得点个Star。下面这些问题都是一线大厂的真实面试问题,不论是对你面试…

网站高并发及高并发架构详解

高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被AD…

大型网站技术架构(二)架构模式

2019独角兽企业重金招聘Python工程师标准>>> 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

大型网站技术架构(一)大型网站架构演化

2019独角兽企业重金招聘Python工程师标准>>> 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及ses…