高可用Web服务介绍2_第1页
高可用Web服务介绍2_第2页
高可用Web服务介绍2_第3页
高可用Web服务介绍2_第4页
高可用Web服务介绍2_第5页
已阅读5页,还剩1页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高可用Web服务介绍2设计高可用Web服务-代理层web

cache

加速和

Load

Balancer

放到了同一层,因为他们的工作都是启到了proxy的作用,只是他们所做的是不同的工作.

提到Web

cache服务器或web代理服务器(我们统称为web加速服务器),很多人往往就会想到Squid

,

我曾经对一个网站做过一个测试

,

在利用了Squid做加速代理后的速度比没有利用Squid做加速代理在速度有着很明显的提升.

当然除了Squid之外还有Varnish

,并且在我的对Varnish的测试中,

发现Varnish的效果要比Squid好很多,因为正如很多资料中都提到的,Varnish在内存的利用上,比Squid有着很大的优势.所以说在一个高性能的web架构中web

cache是web加速是不能缺少的.

Load

Balancer

F5,梭子鱼,A10等负载均衡的设备我想对大家来说并不陌生.我用过F5的设备,也体验过梭子鱼,并且A10上海的办事处目前与我的办公室也仅仅只有一墙之隔.我不得不去承认这些负载均衡的设备的性能以及在一些生产环境中为一些现有的Load

Balancer架构所作出的贡献.但是这篇文章主要是围绕着基于Linux/unix,所以在此我所提到的并不是这些厂商所提供的Load

Balancer的设备,而是基于linux的Load

Balancer软件Haproxy

.

Haproxy可以支持数以万计的并发连接,并且满足session保持,适合用于负载较大的web站点,并且haproxy可以保护web服务器不被暴露在公网上,提高了web服务器的安全性.

看到这或许你会有疑问我为什么会把web

cache

比如varnish放在了haproxy的前面?而在网上很多人都是haproxy在varnish前面,后端再通过nginx做web服务器的Load

Balancer,他们的设计并没有错,也是可行的.不过我想读完下面的内容,你会知道我这么做的原因.

首先,在varnish和squid中,对负载均衡的支持并不是很完美,虽然squid和varnish都能够支持一些简单的负载均衡的工作,但是他们提供的负载均衡并不能满足我们的需求,比如squid能够支持web服务器的健康检测,但是在session保持上,squid一直没有一个很好的解决方案,还是需要通过第三方的开源软件来实现..最后squid和varnish在负载均衡的执行效率上,表现的并不是很好.所以我会建议如果条件允许的话,还是把两者分开.当然haproxy也可以通过nginx做替代,唯一要考虑的问题就是session保持的问题,但是我们可以通过memcached的session共享来解决.而在Load

Balancer这层haproxy的主要工作就是将varnish的请求分发到不同的web服务器,并且支持session保持.我想你也不希望在为nginx或者squid搭建一台session共享服务器吧.所以我想haproxy会是你更好的选择.3设计高可用Web服务-Web层Web层其实很简单,正如我所定义的web层的字面意思一样,在web层中所提供的服务无非也就是web服务,比如基于java,php等语言开发的站点.在这一层中有很多开源软件能够满足你的需求.比如Apache,Nginx,lighttpd,thttpd以及cherokee等.在网上看到很多朋友对apache进行一些评论,并且有些朋友的言语还是比较激烈,而这些曾误导过很多刚刚接触linux的朋友.在这我建议各位朋友,根据不同的需求来选择不同的webserver那才是最完美的,比如,你需要自己定制模块,那么apache是一个很不错的选择,很多公司比如阿里巴巴和sina在apache上都有着自己的定制的模块.如果你单纯只是用来做静态页面,那你可以选择nginx,lighttpd或者是thttpd,这些都是一个很不错的选择.在一个高性能的web站点中,将动态页面和静态页面分开,通过不同的web服务器来完成不同的工作,将会起到一些关键性的作用.因为他们能让你的站点显得快些.我想这个”快”至少是你的管理层所期待的.4设计高可用Web服务-数据层在数据层,服务器所要做的工作就是对数据进行处理.而这一层往往也是最重要的,因为他不但充当着你数据的处理工作,而且还充当着数据的存储.在数据的处理上,这个直接决定着你网站呈现给用户的速度;在数据的存储上,这层存储着你网站和用户的数据,我想你并不希望哪天因为的起初架构设计的不合理导致你页面的呈现给用户的速度很慢或者因为你的架构设计的不合理导致你最终因为某种原因而丢失了一部分用户数据.我想那时候你一定会很后悔,毕竟数据是最重要的.他决定着很多.数据层常见的实现层面1.SQLCache2.SQLServer3.自动备援4.MySQL读写分离5.实时同步6.监控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论