大型网站_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> 大型网站 >>列表
在使用缓存后,使大部分的数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(包括未命中缓存的,和缓存过期的)和全部的写操作需要访问数据库,当网站的访问量继续增加后,数据库会因为负载压力过高导致成为网站的性能瓶颈。目前大部分的主流数据库都提供了主从热血功能,通过配置两台数据库的主从关系,可以将一台数据库服务器的数据同步到另一台服务器上,网站利用数据库的这一功能,可以实现数据库的读写分离,从而改善数据库的负载压力。应用服务器在写数据的时候,访问主数据库... 查看全文
网站的访问也是遵循二八定律:80%的业务访问集中在20%的数据上,如果我们把这20%的数据做缓存,是不是可以减轻数据库的访问压力呢?在项目开发过程中,我们通常将一些基础信息缓存起来,比如商旅系统中的国家,城市,航空公司,机场和航站楼信息。使用缓存改善网站性能缓存一般分为两种,本地缓存和分布式缓存,本地缓存指的是应用服务器的本机缓存,分布式缓存一般指专门的缓存服务器,比如memcached和redis。下图是使用缓存后网站的架构:总结:使用缓存后,数据库读的压力得到缓解,但是仍存在的问题是... 查看全文
使用应用服务器集群是解决高并发的常用方法,当一台应用服务器的处理能力不足时,不要企图更换配置更高的服务器,对于大型网站而言,不管多么强大的服务器,都满足不了持续增长的业务需求,在这种情况下,更好的做法是增加一台应用服务器去分担原来服务器的压力。因为这样使得系统的可扩展和可伸缩性更好。使用应用服务器集群架构如下图:总结:使用应用服务器集群后,应用服务器这一层的高并发问题就解决了,但是高并发的压力就转移到数据库了,所以后面要继续优化架构去解决数据库的压力问题。... 查看全文
· 大型网站架构设计发布时间:2017-03-26
概述三个纬度:演化、模式、要素五个要素:性能,可用性,伸缩性,扩展性,安全演化历程图例可参考大型网站架构演化历程:初始阶段的网站架构:一台服务器,上面同时拥有应用程序,数据库,文件,等所有资源。例如LAMP架构应用和数据服务分离:三台服务器(硬件资源各不相同),分别是应用服务器,文件服务器和数据库服务器使用缓存改善网站性能:分为两种,缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器的远程缓存使用应用服务器集群改善网站并发处理能力... 查看全文
· 大型网站技术架构的演进发布时间:2015-04-14
最近我在阅读2本关于大型网站架构的书:《大型网站技术架构——核心原理与案例分析》李智慧、《大型网站系统与Java中间件实践》曾宪杰。我期望从这些书中学习到大型网站是如何做架构的,这个过程会遇到什么问题。当看完这2本书后,我总结出两个大问题:1.网站技术架构为什么会演进?换个说法就是为什么网站会变大?2.演进的过程会遇到什么问题?或者说为了演进,会遇到什么问题?网站技术架构为什么会演进我个人总结出来我们的技术架构演进的两种驱动力,驱动着我们为什么演进网站的技术架构:1... 查看全文
反向代理也是一种可以帮助实现网站静态化的重要技术,今天我就来讲讲反向代理这个主题。那么首先我们要了解下什么是反向代理。和反向代理相对应的是正向代理,正向代理也就是我们常说的代理服务,正向代理是非常常见的,例如在某些公司里我们想使用互联网,那么我们就得在浏览器里设置一个代理服务器,通过代理服务器我们才能正常使用互联网,而这个代理服务器就是一个正向代理服务器。正向代理更加让人熟悉的使用场景估计还是在FQ技术里的使用,我们使用一个放置在国外的代理服务器来访问那些在国内无法正常访问的网站... 查看全文
在存储瓶颈的开篇我提到像hao123这样的导航网站只要它部署的web服务器数量足够,它可以承载超大规模的并发访问量,如果是一个动态的网站,特别是使用到了数据库的网站是很难做到通过增加web服务器数量的方式来有效的增加网站并发访问能力的。但是现实情况是像淘宝、京东这样的大型动态网站在承担高并发的情况下任然能保证快速的响应,这其中有什么样的技术手段可以达到动态网站支撑高并发的场景了,这也许是每个做web开发的朋友都很感兴趣的问题,今天我将写一个新的系列来探讨下这个问题... 查看全文
本文开篇提个问题给大家,关系数据库的瓶颈有哪些?我想有些朋友看到这个问题肯定会说出自己平时开发中碰到了一个跟数据库有关的什么什么问题,然后如何解决的等等,这样的答案没问题,但是却没有代表性,如果出现了一个新的存储瓶颈问题,你在那个场景的处理经验可以套用在这个新问题上吗?这个真的很难说。其实不管什么样的问题场景最后解决它都要落实到数据库的话,那么这个问题场景一定是击中了数据库的某个痛点,那么我前面的六篇文章里那些手段到底是在解决数据库的那些痛点,下面我总结下,具体如下:痛点一... 查看全文
上篇里我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务的含义,503还表达了网站服务端现在有问题但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服务端程序出现了错误导致网站无法正常提供服务,500通常是服务端异常和错误所致,如果生产系统里发现了500错误,那么只能说明网站存在逻辑性的错误,这往往是系统上线前的测试做的不到位所致。回到503错误... 查看全文
· 大型网站系统架构的演化发布时间:2014-10-20
前言一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求... 查看全文
· 大型网站的灵魂——性能发布时间:2014-10-01
前言   在前一篇随笔《大型网站系统架构的演化》中,介绍了大型网站的演化过程,期间穿插了一些技术和手段,我们可以从中看出一个大型网站的轮廓,但想要掌握设计开发维护大型网站的技术,需要我们一步一步去研究实践。所以我打算写一个系列,从理论到实践讲述大型网站的点滴,这也是一个共同学习的过程,希望自己能坚持下去。系列大概会分为两部分,理论和实践,理论部分尽量通俗易懂,也要讲一些细节。实践部分会抽取一些技术做实践,将方法、解决问题过程分享出来... 查看全文
· 大型网站系统架构的演化发布时间:2014-09-26
前言一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求... 查看全文
PHPSESSION原理我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据。HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那么服务器是如何记住众多用户的会话数据呢?首先要将客户端和服务器端建立一一联系,每个客户端都得有一个唯一标识,这样服务器才能识别出来。建议唯一标识的方法有两种:cookie或者通过GET方式指定... 查看全文
阅读完第二章节后,第一次产生了记录的冲动,平复内心的喜悦后,于是变产生了这篇博文。引用汤峥嵘的一段原话--这些看似古怪或丑陋的方法,是大型互联网企业用无数血泪换来的宝贵经验。作为一个从事J2EE开发的企业级应用程序员,有时候也会想象下,如果自己接到一个随时都会有上万并发量的系统的时候自己会怎么办?特别是12306系统崩溃那段时间。然后本书给与了我们广大读者一个实际的引导。本书的第二章节,栩栩如生的阐述了互联网网站架构发展的变迁。清晰,通俗,是第一印象... 查看全文
读完《大型网站系统与Java中间件实践》该书的试读章节后,我感觉自己对于一个网站架构由于环境的变化而演化的过程有了些许了解,其中讲到如何保存用户的会话信息,采用了四种方式,结合我现在的工作,虽然我所做的是企业级软件,但是用户会话信息的保存也是我所面临的一个问题,虽然我们也是通过session并结合cookie来保存用户的会话信息,或是回显,但是session具体是如何做保存的我还真没有认真的去了解过,这也让我有了想要了解的欲望,是不是就是采用了书中所说的方法还是我们另辟蹊径。当然... 查看全文
何谓大型网站?作者从海量的数据和非常高并发的访问量的角度做了一个宽泛的定义,而数据量和访问量增长的过程也恰恰是一个网站从小到大的发展过程,大数据,高并发等所带来的技术挑战能击垮一个网站,但能成就一个网站。作者从数据库读写分离,服务器集群等多个角度分析了解决大数据、高并发问题的思路:1.数据库与应用分离:把数据库与应用从一台机器分到两台机器。技术要点分析:数据库与应用分开了,只需要把应用中JDBC连接数据库的配置从地址本机改到了另外一台机器地址即可,对开发、测试、部署都没有影响,技术难度很小。2... 查看全文
一、大型网站系统特点(1)高并发、大流量:PV量巨大(2)高可用:7*24小时不间断服务(3)海量数据:文件数目分分钟xxTB(4)用户分布广泛,网络情况复杂:网络运营商(5)安全环境恶劣:黑客的攻击(6)需求快速变更,发布频繁:快速适应市场,满足用户需求(7)渐进式发展:慢慢地运营出大型网站二、大型网站架构演化过程(1)初始阶段网站架构:一台Server就刚需—应用程序、数据库、文件等所有资源都集中在一台Server上,典型案例:基于LAMP架构的PHP网站(2... 查看全文
我们知道在面向对象编程中,总会想着各种办法来实现代码的解耦,从而让项目中的各种人员面对自己熟悉的业务进行开发,做到术业有专攻,比如大家非常熟悉的三层架构,MVC,MVP以及MVVM模式,让前端设计专注于html的制作,让后端开发人员更加专注于业务逻辑的编写,可以看到,我们这么做的目的就是想最大程度的做到系统的可扩展和可维护性,那么我们的大型网站是不是也要遵守这种模式呢?一:分层和分割1:分层对于分层,我们可能非常熟知了,数据访问层,业务逻辑层,缓存层,应用层,层层专注于自己的业务... 查看全文
说到缓存,我想大家跟我一样都很兴奋,当我们遭遇网站性能瓶颈的时候,缓存是一剂强心针,也是一粒紧急妈富隆,从而在优化网站性能方面冠上了第一定律的帽子,我们前年在做淘应用的时候,就遭遇了性能瓶颈,短时间内采用缓存紧急优化,给我们大优化之前争取了宝贵的时间。一:缓存的种类要说缓存有多少种,太多了,比如浏览器缓存,文件缓存,片段缓存,数据库缓存等等,合理利用这些缓存则能大幅度的提高系统性能,利用不好反而会偷鸡不成蚀把米,给服务器造成巨大的压力,所以这里就存在一个缓存的使用原则的问题。二... 查看全文
这篇文章本来准备前几天就得写的,谁也没想到这段时间公司的RC太多了,含酸苦逼的加班,加班。。。所以在大一点的公司上班,写代码的责任心一定要强,或许就因为你的一些小bug,给公司带来不少损失。。。这在以前公司真的没多大体会的。好了,继续说说架构的演变,从第四代架构中可以看到,我们通过做应用程序层的负载均衡可以比较完美的解决了在整个架构中让应用程序层不再成为瓶颈,通过A10,我们可以让用户的访问请求分发到集群中的任何一台服务器上,当访问量继续膨胀的时候... 查看全文