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

简介: 一、大型网站架构模式: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、安全性

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

目录
相关文章
|
7天前
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
32 1
|
17天前
|
SQL Java 数据库连接
Mybatis架构原理和机制,图文详解版,超详细!
MyBatis 是 Java 生态中非常著名的一款 ORM 框架,在一线互联网大厂中应用广泛,Mybatis已经成为了一个必会框架。本文详细解析了MyBatis的架构原理与机制,帮助读者全面提升对MyBatis的理解和应用能力。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Mybatis架构原理和机制,图文详解版,超详细!
|
27天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
29天前
|
运维 NoSQL Java
后端架构演进:微服务架构的优缺点与实战案例分析
【10月更文挑战第28天】本文探讨了微服务架构与单体架构的优缺点,并通过实战案例分析了微服务架构在实际应用中的表现。微服务架构具有高内聚、低耦合、独立部署等优势,但也面临分布式系统的复杂性和较高的运维成本。通过某电商平台的实际案例,展示了微服务架构在提升系统性能和团队协作效率方面的显著效果,同时也指出了其带来的挑战。
63 4
|
7天前
|
监控 持续交付 API
深入理解云计算中的微服务架构:原理、优势与实践
深入理解云计算中的微服务架构:原理、优势与实践
18 0
|
1月前
|
开发者 容器
Flutter&鸿蒙next 布局架构原理详解
本文详细介绍了 Flutter 中的主要布局方式,包括 Row、Column、Stack、Container、ListView 和 GridView 等布局组件的架构原理及使用场景。通过了解这些布局 Widget 的基本概念、关键属性和布局原理,开发者可以更高效地构建复杂的用户界面。此外,文章还提供了布局优化技巧,帮助提升应用性能。
92 4
|
1月前
|
存储 Dart 前端开发
flutter鸿蒙版本mvvm架构思想原理
在Flutter中实现MVVM架构,旨在将UI与业务逻辑分离,提升代码可维护性和可读性。本文介绍了MVVM的整体架构,包括Model、View和ViewModel的职责,以及各文件的详细实现。通过`main.dart`、`CounterViewModel.dart`、`MyHomePage.dart`和`Model.dart`的具体代码,展示了如何使用Provider进行状态管理,实现数据绑定和响应式设计。MVVM架构的分离关注点、数据绑定和可维护性特点,使得开发更加高效和整洁。
155 3
|
19天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
18天前
|
Cloud Native 安全 数据安全/隐私保护
云原生架构下的微服务治理与挑战####
随着云计算技术的飞速发展,云原生架构以其高效、灵活、可扩展的特性成为现代企业IT架构的首选。本文聚焦于云原生环境下的微服务治理问题,探讨其在促进业务敏捷性的同时所面临的挑战及应对策略。通过分析微服务拆分、服务间通信、故障隔离与恢复等关键环节,本文旨在为读者提供一个关于如何在云原生环境中有效实施微服务治理的全面视角,助力企业在数字化转型的道路上稳健前行。 ####
|
18天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
38 1
服务架构的演进:从单体到微服务的探索之旅