在网站开发中,如果一个网站成功了,那技术问题,尤其是提高性能的技术问题也相应的解决了.
1、把网站的提供应用和数据库分开在两个物理的机器上。一个提供数据,一个显示数据。这个应该就是应用和数据库的物理分离了。
2、相对静态的数据页面进行缓存。前端页面缓存技术的实现方法是:
使用保存到一个变量的方法,到时候先检查是否存在,如果存在那就直接调用缓存中的数据。
squid:Squid是Linux下最为流行的代理服务器软件,它功能强大,支持对HTTP、FTP、Gopher、SSL、WAIS等协议的代理; 设置简单,只需对配置文件稍稍改动就可使代理服务器运转起来。此外,Squid具有页面缓存功能,它接受用户的下载申请,并自动处理所下载的数据。 这样得再放一台服务器。
3、页面片段缓存技术。
缓存的是关于动态页面中相对静态的部分。ESI  是什么?
为了有效提高动态Web内容的传递速度,帮助用户在简化基础架构的同时能够提高Web应用的性能和可伸缩性,世界领先的电子商务解决方案供应商Oracle公司和重要的内容传递服务供应商Akamai公司日前宣布,将合作开发一种称为 “ESI(Edge Side Includes)”的标识语言,该语言采用简单的标识语言,支持页面片段的动态装配,允许高速缓冲静态页面元素,能够缩短网页的整体传输时间。利用ESI,用户能够降低基础结构的复杂性,提高开发、部署和管理可伸缩的、可靠性的Web网站和Web应用的效率,加速动态网页的传输速度。Oracle和Akami表示,他们将把ESI规范提交给一个标准组织,以期能够作为一种标准进行推广。
传统的高速缓冲存储技术在提高静态Web内容的传输速度方面发挥了很大的作用,然而,为了满足用户的个性化应用需求,今天的大多数Web页面都包含了个性化和非个性化的内容片段,难以通过传统的高速缓冲存储技术和CDN服务进行快速传输。ESI的特点是能够动态地装配这些页面片段,允许用户开发可以在数据中心和Internet动态装配的Web应用,从而实现应用性能的有效改进。通过支持ESI,Oracle和Akamai把Web高速缓冲存储和内容传输服务与节约成本的优势用于提高动态Web网站的速度,增强动态网站的吞吐量、提高响应效率、降低基础架构的成本。对Web开发者来说,可以利用ESI内置的可伸缩性、跨越多个供应商的协同工作能力和对现有应用的支持能力,提高Web应用开发效率。

Oracle9i营销副总裁Rene Bonvanie说:“我们正在和Akamai以及其它业界重要的公司合作,共同推动这个ESI的发展。我相信,ESI将能够降低Web应用开发和部署的复杂性,优化内容的提供进程,即使在那些内容总在不断更新、访问量巨大的网站上,也能够获得快捷、交互的访问体验。”

Akamai产品营销副总裁George Kurian表示:“Akamai和Oracle在提高动态Web网站的开发方面者拥有独到的优势,毫无疑问,双方之间的合作将能够充分利用各自的优势,更有效地帮助以在更简单的基础架构之上开发和部署更高性能的Web网站。”

Oracle将在下一版本的Oracle9i AS提供对ESI的支持,为了帮助J2EE解决方案能够充分利用ESI,Oracle9i AS也将支持JESI。Akamai将在今年5月开始把ESI加入到它的EdgeSuite服务软件包中,后者主要用于互联网内容和应用服务。
4、数据缓存技术。
缓存技术,包括像Map数据结构、缓存算法、所选用的框架本身的实现机制等。
地图数据结构===Map数据结构
缓存算法:我们公司开发了个比较庞大的系统,有时一个操作要进行很多数据库操作,所以系统缓慢。  
  这样,我就被分了个DAL数据库查询结果(可能会有各种数据类型的返回结果)缓存的任务。和项目经理讨论了很多数据结构与算法均谈不上高速(我也实现了一些,但都达不到要求)。请高手给个比较好的算法,一些提示也行。这说明如何实现有效的缓存是个比较头痛的问题,还是应该有个解决的思路并去实践。
5、增加webserver.
这样就是说,增加服务器。这个问题比较有技术。
涉及的技术:
负载均衡技术(包括但不限于硬件负载均衡、软件负载均衡、负载算法、linux转发协议、所选用的技术的实现细节等)、主备技术(包括但不限于ARP欺骗、linux heart-beat等)、状态信息或缓存同步技术(包括但不限于Cookie技术、UDP协议、状态信息广播、所选用的缓存同步技术的实现细节等)、共享文件技术(包括但不限于NFS等)、存储技术(包括但不限于存储设备等)。
都听说过,尽管没有具体实现过。
6、分库。根据功能和访问频度来分库。这样就能提高数据库的响应速度了,尤其是把功能不同的或者是访问不同时的进行分库原则。
7、分表、DAL、分布式缓存。
分表,在同时访问之间和不可能同时访问之间进行分表。
DAL:技术上涉及到的会有动态hash算法、consistent hash算法等;
DAL涉及到比较多的复杂技术,例如数据库连接的管理(超时、异常)、数据库操作的控制(超时、异常)、分库分表规则的封装等.
DAL数据访问层(这层是最主要的)
从当地缓存到分部式缓存的转变。
8、增加更多的webserver。
负载均衡技术和分部提供机制。
9、数据读写分离和廉价存储方案。
数据读写分离实现,必须要有数据库的同步功能给与支持。实际上是对数据的进一步的管理。还有就是廉价存储方案也是。分布式存储系统,廉价存储的大数据表等。
10、进入大型分布式时代和廉价服务器群时代。

 

转载于:https://blog.51cto.com/16610/191642

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

  1. 列举在移动Web开发中经常会设置的特殊样式!

    在实际开发中,移动Web页面的设计风格更接近App(手机应用),而不是传统的网页.为了有更好的用户体验,我们可以给移动Web页面设置一些特殊样式.下面为列举在移动Web开发中经常会设置的特殊样式,具体 ...

  2. 【笔记-node】《imooc-nodejs入门到企业web开发中的应用》

    目录 课程名 备注 入门必学 nodejs入门到企业web开发中的应用 框架与工具 node.js+koa2+mysql打造前后端分离精品项目<旧岛> 项目实战 20190317-2020 ...

  3. WEB开发中,使用JSON-RPC好,还是RESTful API好?

    看到知乎上有这样一个问题 WEB开发中,使用JSON-RPC好,还是RESTful API好? 还有其他优秀的推荐方案吗? -------------------------------------- ...

  4. 幻灯片:Web开发中的缓存

    这是我昨天在博文视点Open Party上海站上关于Web开发中缓存的简单讲座.原本博文视点的朋友们希望我讲一下ASP.NET MVC方面的话题(估计看我最近一直在搞这个),但是我觉得其他平台一直用的 ...

  5. 038——VUE中组件之WEB开发中组件使用场景与定义组件的方式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

  6. 谈谈WEB开发中的苦大难字符集问题

    记得刚做javaweb开发的时候被这个编码问题搞得晕头转向,经常稀里糊涂的编码正常了一会编码又乱了.那个时候迫于项目进度大多都是知其然不知其所以然.后来有时间就把整个体系搞了个遍,终于摸通了来龙去脉. ...

  7. Web开发中的相对路径和绝对路径

    在学习HTML的时候一定会遇到引入文件和链接跳转页面,比如:JS文件.CSS文件.Image图片.我们就会考虑是相对路径和绝对路径的问题.下面PHP程序员雷雪松就详细讲解下Web开发中的相对路径和绝对 ...

  8. web开发中目录路径问题的解决

    web开发中目录路径问题的解决 参考文章: (1)web开发中目录路径问题的解决 (2)https://www.cnblogs.com/freeweb/p/4751403.html 备忘一下.

  9. java sessionstate_在Java Web开发中自定义Session

    Session在存储安全性要求较高的会话信息方面是必不可少的,对于分布式Web应用自定义Session支持独立的状态服务器或集群是必须的.本文就来教大家如何在Java Web开发中自定义Session ...

最新文章

  1. LeetCode 207. Course Schedule--有向图找环--面试算法题--DFS递归,拓扑排序迭代--Python
  2. Cannot call sendError() after the response has been committed
  3. Oracle分析函数-keep(dense_rank first/last)
  4. css段落文字(中英文混杂)实现两端对齐
  5. 时序竞态(竞态条件)
  6. 有关软件工程的问题的分析和讨论及课后的作业3
  7. django-基本使用
  8. ubuntu物理机上搭建Kubernetes集群 -- 准备
  9. 域管理员在域计算机安装程序,本人电脑菜鸟,现在正用管理员用户登录,如何设置某个域用户拥有安装软件的权限?尽量详解。谢谢!...
  10. 跨域总结(jquery,php)
  11. 毕业题目:Matlab GUI界面
  12. 第一章:Python数据分析前的基础铺垫
  13. html制作图片幻灯片效果代码,【JS+CSS3】实现带预览图幻灯片效果的示例代码
  14. tail -f与tail -F的区别
  15. Linux 进程编程入门
  16. NVR和DVR的详细区别
  17. 中国联通联合openGauss开源社区启动数据库自主创新
  18. 计算机应用在医学领域有哪些,计算机在医学领域的应用|网络安全技术
  19. 日期控件My97的时间限制
  20. 【android】EditText输入银行卡号每四位空一格

热门文章

  1. Tomcat(二):tomcat配置文件server.xml详解和部署简介
  2. Spring Boot 关于 @Import注解 —— 导入资源
  3. Python学习六大路线,教你快速上手
  4. qt on android 桌面鼠标事件,Qt on Android 不能自动创建Qt套件的问题的解决
  5. oracle游标的基础应用,Oracle 基础的游标的使用
  6. 服务器可视化_系统管理员不可错过的6款服务器监控工具
  7. python遍历循环选择题_19道Python循环遍历,while,for语句测试题,网上看到的题目,自己不看答案全部做了一次,总共3个小时左右...
  8. python如何询问_学习Python问?
  9. python 装饰器参数_python_如何修改装饰器中参数?
  10. python批量删除特定字符_根据某个特定字符删除一行