`
dalezhu
  • 浏览: 205833 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

架构思想

    博客分类:
  • Java
阅读更多

      架构思想

1.1       HTML页面静态化

通过商城后台CMS达到网站某部分页面静态化,例如各个频道及首页等。互联网上大型网站一般为了提高性能在首页和各个频道都采用CMS发布静态化页面的方法。这个简单有效的方法特别是针对大量内容频繁更新的站点,CMS的好处不必多言,是网站必不可少的有效的工具。页面静态化也是缓存策略的常用手段,对于系统中频繁使用数据库查询但是内容更新很小的应用,可以考虑使用html静态化来实现,比如商城中的公用设置信息,这些信息其实大量被前台程序调用,但是更新频率很小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避免了大量的数据库访问请求。

1.2       2、图片服务器和应用服务器分离

对于网站来说,图片的展示和加载也是很消耗资源的,于是大部分网站也进行图片和页面的分离,有独立的图片服务器,甚至是图片服务器集群,这样可以很好的进行提供服务和缓解应用服务器的压力,并且可以保证网站不会因为图片问题而崩溃,在应用服务器和图片服务器上,可以进行不同的配置优化。目前流行的lighttpdNginx等很好的支持图片的访问服务。

1.3       库表散列和数据库集群

无论是网站还是企业系统,几乎所有的瓶颈都在与IO,如数据库的读写,特别是面对复杂、高访问量的时候,这一瓶颈会很快显现出来,这时一台或几台数据库将无法满足应用,于是我们需要使用数据库集群或者库表散列。在这点上像Oraclemysql等都有很好的方案可供参考,比如MysqlMaster/Slave模式,由于数据库集群在架构、成本、扩张性等方面都会受到所采用DB类型的限制,因此我们必须考虑数据库设计,以尽可能的改善系统性能,数据库表散列是经常考虑的数据库设计因素,

比如根据用户ID进行表散列。

1.4       4、缓存

这个是网站必用技术,一般有前端缓存和后端缓存之分,前端缓存如Squid等,apache自己也提供了缓存模块,后端缓存基本是降低数据库的负载或文件IO的作用,如Memcached

Memcached是高性能、分布式的内存对象缓存系统,用于在动态应用系统中降低数据库负载,以提升访问速度和提高可扩展性。MemcacheDanga Interactive开发,是danga.com的一个项目,而Memcached是它服务器端的主程序文件名,初始是为LiveJournal网站服务的,主要用于提升LiveJournal.com访问速度,LJ每秒动态页面访问量几千次,用户700多万。目前全世界不少大型网站和系统都在使用这个缓存项目来构建,国外如FacebookYhaooYoutube等,国内也有广泛应用,如搜狐、新浪及其他大型Web2.0SNS社区等。Memcached 服务器端和客户端共同工作,组成分布式全局缓存服务器群组,实现跨服务器的缓存服务提供。其中客户端至关重要,分布式缓存服务结构基本是由客户端的分布式机制决定的。

1.5       5、镜像

镜像技术也是各个大型站点常用策略之一,以提高网站整体服务能力,基本上能够解决不同网络接入商和地域带来的用户访问速度差异。镜像的技术很多,有商业产品也有比如Linux上的rsync等免费工具。

1.6       6、负载均衡

硬件四层交换:

负载均衡将是大型网站解决高负荷访问和大量并发请求采用的终极解决办法,有众多的商业产品和解决方案。如F5, Alteon;也有众多开源软件负载均衡搭配方案。搜狐淘宝等使用了F5,中国雅虎使用了Alteon

软件四层交换

Linux上常用的LVSLinux Virtual Server)来解决,如在软件或者硬件四层交换的基础上搭建squid集群,很多大网站都采用这种思路,高性能、低成本、扩展性都是其流行的原因。

分享到:
评论
1 楼 nything 2009-07-08  
不错  希望博主继续写下去!~

相关推荐

    《我的架构思想》电子书 - PDF版

    此外,本书在“架构意图”方面的讨论,既直指架构思想的本质,又为架构决策与实施找到了依据,颇为难得。 最后,本书在附录中提供了一个超越软件架构的案例,尝试解决作者早期提出的EHM模型(软件工程中的层状模型...

    三层架构思想

    ### 三层架构思想详解 #### 一、三层架构思想概览 三层架构,又称为n层架构中的一个特例,是软件开发中一种常见的设计模式,主要用于提高代码的可维护性、可扩展性和复用性。它将应用程序分为三个主要层次:表示层...

    《我的架构思想》电子书 - EPub、kindle等各种ebooks版本

    此外,本书在“架构意图”方面的讨论,既直指架构思想的本质,又为架构决策与实施找到了依据,颇为难得。 最后,本书在附录中提供了一个超越软件架构的案例,尝试解决作者早期提出的EHM模型(软件工程中的层状模型...

    java架构思想---------------------

    Java架构思想是软件开发中的重要领域,它涉及到如何组织和设计复杂的系统,以实现高效、可维护、可扩展和易用的解决方案。架构模式是这一领域中的核心概念,它们是经过时间验证的设计策略,用于解决特定类型的软件...

    微服务架构思想.zip

    微服务架构思想是一种现代软件开发方法,它将大型的单体应用分解为一系列小型、独立的服务,每个服务都运行在自己的进程中,可以独立部署、扩展和维护。这种架构模式已经成为了应对复杂业务系统和快速迭代需求的重要...

    我的架构思想-基本模型理论与原则-周爱民-epub文字版-附带epub阅读软件

    然而,到了现在你所读的这本《我的架构思想》中,却只剩下了“系统”这个讨论对象,那些基础构件已经全然不见了。这一切的根源又在哪里呢?架构本质上是一个映像。洞见映像背后的事实,就如同从镜子去观照现实,知道...

    《智慧校园管理系统》采用前后端分离架构思想,前端采用HTML + CSS + Vue实现页面效果展示,后端采用SpringBoo

    《智慧校园管理系统》采用前后端分离架构思想,前端采用HTML + CSS + Vue实现页面效果展示,后端采用SpringBoot + MybatisPlus框架实现数据存储等服务,存储层使用高性能的MySQL,服务器使用SpringBoot内置的Tomcat...

    C语言之嵌入式系统软件架构思想

    《C语言之嵌入式系统软件架构思想》深入解析 一、C语言编程中的模块化设计与分层思想 在嵌入式系统开发中,C语言因其高效、灵活且易于控制硬件的特点,成为首选的编程语言。而在C语言中,模块化设计与分层思想是...

    关于三种主流WEB架构思想

    在探讨三种主流WEB架构思想之前,我们先简要回顾一下WEB架构的发展历程。自万维网诞生以来,WEB架构经历了从静态页面到动态交互、再到分布式微服务的演变过程。在这个过程中,不同的架构思想应运而生,为解决特定...

    项目架构思想

    在IT行业中,项目架构思想是构建复杂软件系统的关键要素,它涉及到如何组织和设计软件的各个部分,以实现高效、可扩展和易于维护的目标。本文将深入探讨项目架构的几个核心概念,结合“源码”和“工具”的标签,我们...

    用设计模式和三层架构思想部署基于PHP项目的研究与实现.pdf

    "基于设计模式和三层架构思想部署基于PHP项目的研究与实现" 本文概述了设计模式和三层架构思想在基于PHP项目中的应用和实现。设计模式是一种软件开发的设计思想,它伴随着人们对软件工程的需求,旨在提高软件的可...

    AI大语言模型架构思想技术.zip

    本资料"AI大语言模型架构思想技术.zip"深入探讨了这个领域的核心概念、架构设计以及相关技术。下面,我们将详细讨论大语言模型的架构思想及其在人工智能中的应用。 首先,我们要理解什么是大语言模型。大语言模型是...

    大型Web架构思想系列专题

    【大型Web架构思想系列专题】主要探讨的是在面对大规模Web应用时,如何通过有效的架构设计来应对高并发、海量数据存储和快速响应等挑战。以下是对核心知识点的详细说明: 1. **以空间赢得时间**:传统的思维是通过...

    NET挑战J2EE之体系架构思想

    标题和描述中提到的主题是.NET和J2EE两大平台之间的对比,特别是从体系架构思想的角度进行探讨。这两个平台都是为了满足企业级应用的需求而设计,但它们各自有着独特的优点和不足。 J2EE(Java Enterprise Edition...

    JavaEE三层架构_环境搭建、架构思想、代码书写_指导手册.docx

    本文档以“中原工学院自然语言处理项目”中的“网络变异词”模块为例,详细介绍了如何搭建JavaEE开发环境、理解MVC架构思想以及编写相关代码。 **MVC架构思想**: MVC(Model-View-Controller)是一种设计模式,...

    微软宠物店,典型例子解释三层架构思想

    【微软宠物店】是一个经典的案例,它展示了微软的三层架构思想。这个实例源自于微软与J2EE技术的对比讨论,旨在演示如何使用.NET Framework构建高效、可扩展的应用程序。最新的PetShop版本为4.0,基于.NET Framework...

Global site tag (gtag.js) - Google Analytics