大型网站技术架构——核心原理与案例分析(一)

简介: 一、大型网站架构模式:1、分层 - 横向 如应用层、服务层、数据层2、分割-纵向 将业务化分为不同粒度的细小的功能和服务 如订单业务、购物车业务、短信业务、邮件业务等3、分布式-将不现的服务、不同的模块部署在不同的服务器,通过远程调用协同工作,分布式静态资源、分布式数据和存储、分布式计算。

一、大型网站架构模式:

1、分层 - 横向 如应用层、服务层、数据层

2、分割-纵向 将业务化分为不同粒度的细小的功能和服务 如订单业务、购物车业务、短信业务、邮件业务等

3、分布式-将不现的服务、不同的模块部署在不同的服务器,通过远程调用协同工作,分布式静态资源、分布式数据和存储、分布式计算。注意,会对性能有影响(网络请求开销),分布式事物、数据一致性。

4、集群-用更多服务器提供相同的服务,可以提供很好的并发性,不足以支持访问量时,只需要要向集群中加入新的机器即可。当一台机子不可用时,可通过负载设备或失效转移机制把请求转发到集群的其他服务器。从而 可提升网站的可用性,

5、缓存-改善软件性能的第一手段。

          CDN,放在离终端用户最近的网络服务商,用户请求先到网络服务商(缓存网站的一些静态资源,较少变化的数据);           反向代理,用户请求到到中心服务器时,请求最先到达,这里缓存网站的静态资源,用户的请求不需要转发到应用服务器,即可返回,

         本地缓存,缓存一些热点数据,无需访问数据库

         分布式缓存 :使用前提条件:1、数据访问热点不均衡 2、数据在某个时间段内有效,不会很快过期

                              缓存的好处:可以加快数据访问速度,还可以减轻后端应用和数据存储的负载压力。

6、异步-降低软件的耦合性,如生产消费者 ,优点:1、可提高系统的可用性 2、加快网站响应速度 3、消除网站并发访问高峰。

7、冗余-主要是针对数据,当服务器宕机时,保证数据不丢失。数据冗余备份。数据库除了定期备份(冷备份),同时要同步热备份(主从复制),同时为了抵御不可抗力(地震、海啸等)还要进行灾备。

8、自动化

      自动化代码管理-代码版本控制、代码分支创建;

      自动化测试-代码提交,系统自动将代码部署到测试服务器,启动自动化测试用例进行测试

      自动化安全检测-安全检测工具对代码静态安全扫描及部署到安全测试环境进行安全攻击测试

      自动化部署-将工程代码自动部署到线上生产环境。

      自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级、自动化分配资源。也是对其要求。

9、安全

    网站的安全性、防止XSS攻击、SQL注入、编码转换等要对其进行相应的处理。对敏感信息进行过滤,对垃圾信息进行屏蔽。


二、大型网站核心架构要素

1、性能

    浏览器端:可通过浏览器缓存、页面压缩、合理布局页面,减少Cookie传输等手段,还可以使用CDN,将静态内容分发至离用户最近的网络服务商机房。可在网站机房部署反向代理服务器,缓存热点文件,加快响应速度,减轻应用服务器负载压力

    应用服务器端:使用本地缓存、分布式缓存

   性能的衡量指标:重要的有响应时间、TPS、系统性能计数器

2、可用性

      7*24小时,高可用的设计目标。网站高可用的主要手段是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份

3、伸缩性

     是否容易向集群中添加新的服务器,加入新的服务器后是否可以提供和原来的服务器无差别的服务,集群中可容纳的总的服务器数量是否有限制。

      问题:加入新的服务器后可能会导致缓存路由失效,进而导致集群中的大部分缓存数据都无法访问。

4、扩展性

    衡量网站架构扩展性好坏的主要标准就是网站增加新的业务产品时,是否可以实现对现有产品透明无影响。不需要改动或是很少改动既有业务功能就可以上线新的产品。不同的产品之间是否很少耦合

   主要手段:事件驱动构架和分布式服务

  事件驱动架构通过消息队列实现。

  分布式服务则是将业务和可复用的服务分离开来。

5、安全性

网站架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取。

目录
相关文章
|
10天前
|
存储 SQL 关系型数据库
MySQL进阶突击系列(03) MySQL架构原理solo九魂17环连问 | 给大厂面试官的一封信
本文介绍了MySQL架构原理、存储引擎和索引的相关知识点,涵盖查询和更新SQL的执行过程、MySQL各组件的作用、存储引擎的类型及特性、索引的建立和使用原则,以及二叉树、平衡二叉树和B树的区别。通过这些内容,帮助读者深入了解MySQL的工作机制,提高数据库管理和优化能力。
|
24天前
|
人工智能 前端开发 编译器
【AI系统】LLVM 架构设计和原理
本文介绍了LLVM的诞生背景及其与GCC的区别,重点阐述了LLVM的架构特点,包括其组件独立性、中间表示(IR)的优势及整体架构。通过Clang+LLVM的实际编译案例,展示了从C代码到可执行文件的全过程,突显了LLVM在编译器领域的创新与优势。
46 3
|
27天前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
61 1
|
3天前
|
机器学习/深度学习 存储 人工智能
基于AI的实时监控系统:技术架构与挑战分析
AI视频监控系统利用计算机视觉和深度学习技术,实现实时分析与智能识别,显著提升高风险场所如监狱的安全性。系统架构包括数据采集、预处理、行为分析、实时决策及数据存储层,涵盖高分辨率视频传输、图像增强、目标检测、异常行为识别等关键技术。面对算法优化、实时性和系统集成等挑战,通过数据增强、边缘计算和模块化设计等方法解决。未来,AI技术的进步将进一步提高监控系统的智能化水平和应对复杂安全挑战的能力。
|
23天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
27天前
|
监控 持续交付 API
深入理解云计算中的微服务架构:原理、优势与实践
深入理解云计算中的微服务架构:原理、优势与实践
38 0
|
1月前
|
API 持续交付 网络架构
深入解析微服务架构:原理、优势与实践
深入解析微服务架构:原理、优势与实践
32 0
|
21天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
1月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
43 3
|
1月前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####