您的位置:首页 > 运维架构 > 网站架构

列举web开发中,为满足高性能的架构技术实现

2009-08-14 10:35 633 查看
在网站开发中,如果一个网站成功了,那技术问题,尤其是提高性能的技术问题也相应的解决了.
1、把网站的提供应用和数据库分开在两个物理的机器上。一个提供数据,一个显示数据。这个应该就是应用和数据库的物理分离了。
2、相对静态的数据页面进行缓存。前端页面缓存技术的实现方法是:
使用保存到一个变量的方法,到时候先检查是否存在,如果存在那就直接调用缓存中的数据。
squid:Squid是Linux下最为流行的代理服务器软件,它功能强大,支持对HTTP、FTP、Gopher、SSL、WAIS等协议的代理; 设置简单,只需对配置文件稍稍改动就可使代理服务器运转起来。此外,Squid具有页面缓存功能,它接受用户的下载申请,并自动处理所下载的数据。 这样得再放一台服务器。
3、页面片段缓存技术。
缓存的是关于动态页面中相对静态的部分。ESI 是什么?
为了有效提高动态Web内容的传递速度,帮助用户在简化基础架构的同时能够提高Web应用的性能和可伸缩性,世界领先的电子商务解决方案供应商Oracle公司和重要的内容传递服务供应商Akamai公司日前宣布,将合作开发一种称为 “ESI[/b](Edge Side Includes)”的标识语言,该语言采用简单的标识语言,支持页面片段的动态装配,允许高速缓冲静态页面元素,能够缩短网页的整体传输时间。利用ESI[/b],用户能够降低基础结构的复杂性,提高开发、部署[/b]和管理可伸缩的、可靠性的Web网站和Web应用的效率,加速动态网页的传输速度。Oracle和Akami表示,他们将把ESI[/b]规范提交给一个标准组织,以期能够作为一种标准进行推广。
  传统的高速缓冲存储技术在提高静态Web内容的传输速度方面发挥了很大的作用,然而,为了满足用户的个性化应用需求,今天的大多数Web页面都包含了个性化和非个性化的内容片段,难以通过传统的高速缓冲存储技术和CDN服务进行快速传输。ESI[/b]的特点是能够动态地装配这些页面片段,允许用户开发可以在数据中心和Internet动态装配的Web应用,从而实现应用性能的有效改进。通过支持ESI[/b],Oracle和Akamai把Web高速缓冲存储和内容传输服务与节约成本的优势用于提高动态Web网站的速度,增强动态网站的吞吐量、提高响应效率、降低基础架构的成本。对Web开发者来说,可以利用ESI[/b]内置的可伸缩性、跨越多个供应商的协同工作能力和对现有应用的支持能力,提高Web应用开发效率。
  Oracle9i营销副总裁Rene Bonvanie说:“我们正在和Akamai以及其它业界重要的公司合作,共同推动这个ESI[/b]的发展。我相信,ESI[/b]将能够降低Web应用开发和部署[/b]的复杂性,优化内容的提供进程,即使在那些内容总在不断更新、访问量巨大的网站上,也能够获得快捷、交互的访问体验。”
  Akamai产品营销副总裁George Kurian表示:“Akamai和Oracle在提高动态Web网站的开发方面者拥有独到的优势,毫无疑问,双方之间的合作将能够充分利用各自的优势,更有效地帮助以在更简单的基础架构之上开发和部署[/b]更高性能的Web网站。”
  Oracle将在下一版本的Oracle9i AS提供对ESI[/b]的支持,为了帮助J2EE解决方案能够充分利用ESI[/b],Oracle9i AS也将支持JESI。Akamai将在今年5月开始把ESI[/b]加入到它的EdgeSuite服务软件包中,后者主要用于互联网内容和应用服务。
4、数据缓存技术。
[align=left]缓存技术,包括像Map数据结构、缓存算法、所选用的框架本身的实现机制等。[/align]
地图数据结构===Map数据结构
缓存算法:我们公司开发了个比较庞大的系统,有时一个操作要进行很多数据库操作,所以系统缓慢。
这样,我就被分了个DAL数据库查询结果(可能会有各种数据类型的返回结果)缓存的任务。和项目经理讨论了很多数据结构与算法均谈不上高速(我也实现了一些,但都达不到要求)。请高手给个比较好的算法,一些提示也行。这说明如何实现有效的缓存是个比较头痛的问题,还是应该有个解决的思路并去实践。
5、增加webserver.
这样就是说,增加服务器。这个问题比较有技术。
涉及的技术:
负载均衡技术(包括但不限于硬件负载均衡、软件负载均衡、负载算法、linux转发协议、所选用的技术的实现细节等)、主备技术(包括但不限于ARP欺骗、linux heart-beat等)、状态信息或缓存同步技术(包括但不限于Cookie技术、UDP协议、状态信息广播、所选用的缓存同步技术的实现细节等)、共享文件技术(包括但不限于NFS等)、存储技术(包括但不限于存储设备等)。
都听说过,尽管没有具体实现过。
6、分库。根据功能和访问频度来分库。这样就能提高数据库的响应速度了,尤其是把功能不同的或者是访问不同时的进行分库原则。
7、分表、DAL、分布式缓存。
分表,在同时访问之间和不可能同时访问之间进行分表。
DAL:技术上涉及到的会有动态hash算法、consistent hash算法等;
[align=left]DAL涉及到比较多的复杂技术,例如数据库连接的管理(超时、异常)、数据库操作的控制(超时、异常)、分库分表规则的封装等.[/align]
[align=left]DAL数据访问层(这层是最主要的)[/align]
[align=left]从当地缓存到分部式缓存的转变。[/align]
[align=left]8、增加更多的webserver。[/align]
[align=left]负载均衡技术和分部提供机制。[/align]
[align=left]9、数据读写分离和廉价存储方案。[/align]
[align=left]数据读写分离实现,必须要有数据库的同步功能给与支持。实际上是对数据的进一步的管理。还有就是廉价存储方案也是。分布式存储系统,廉价存储的大数据表等。[/align]
[align=left]10、进入大型分布式时代和廉价服务器群时代。[/align]
[align=left]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 职场 休闲