清关网快递单号:Web架构师常用软件简介

来源:百度文库 编辑:偶看新闻 时间:2024/04/28 07:40:20
Web架构师常用软件简介文章分类: 系统           关键字:web架构

高性能的开源HTTP加速器—Varnish

Varnish是一款高性能的开源HTTP加速器,现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取。硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是Varnish cache设计架构

Internet数据缓冲软件—Squid

它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器(比如:http://squid.nlanr.net/)并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。但它不能处理如POP,NNTP,RealAudio以及其它类型的东西。

Squid是一个高性能的代理缓存服务器,Squid支持FTP、gopher和HTTP协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求。

Squid 将数据元缓存在内存中,同时也缓存DNS查询的结果,除此之外,它还支持非模块化的DNS查询,对失败的请求进行消极缓存。Squid支持SSL,支持访 问控制。由于使用了ICP(轻量Internet缓存协议),Squid能够实现层叠的代理阵列,从而最大限度地节约带宽。

Squid由一个主 要的服务程序squid,一个DNS查询程序dnsserver,几个重写请求和执行认证的程序,以及几个管理工具组成。当Squid启动以后,它可以派 生出预先指定数目的dnsserver进程,而每一个dnsserver进程都可以执行单独的DNS查询,这样一来就大大减少了服务器等待DNS查询的时间。

分布式文件系统—MogileFS

MogileFS是应用层的分布式文件系统,不需要修改内核,可以实现海量图片文件的上传和分布存储,提供类似基于网络的冗余数据保护,并且可以使用perl编程开发。官方网站http://www.danga.com/mogilefs/ 。目前国内的图片共享服务商 又拍网 就使用了mogilefs作为图片存储技术。

分布式文件系统—Hadoop

Apache Hadoop 是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据。

Hadoop是从google的MapReduce和Google文件系统的论文获得的灵感。

Hadoop是Apache的一线项目,开发和实用来自世界各地的社区,Yahoo!是目前为止最大的贡献者,并且Yahoo广泛使用它在搜索业务和广告业务上。IBM和Google的联合就是使用的Hadoop,为大学的课程提供分布式计算。Hadoop的创始人是Doug Cutting(目前在yahoo工作),关于hadoop的命名,是Doug Cutting在它儿子画图时画了一只大象而获得的灵感。其实Doug Cutting最初的目的是想为Nutch搜索引擎提供分布式。

hadoop有三个子项目:Hadoop core,HBase, Zookeeper.

  • hadoop core,提供分布式文件系统HDFS,支持MapReduce分布式计算,组建大型集群。Hadoop框架中最核心设计就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是任务的分解与结果的汇总。HDFS是Hadoop分布式文件系统的缩写,为分布式计算存储提供了底层支持。
  • HBase,类似Google的BigTable,是hadoop的数据库。HBase使用和Bigtable非常相同的数据模型.用户存储数据行在一个表里.一个数据行拥有一个可选择的键和任意数量的列.表是疏松的存储的,因此用户可以给行定义各种不同的列。
  • Zookeeper,高可用和具有可靠的协调机制,分布式应用使用它来存储和协调。Zookeeper是Google的Chubby一个开源的实现.是高有效和可靠的协同工作系统.Zookeeper能够用来leader选举,配置信息维护等.在一个分布式的环境中,我们需要一个Master实例或存储一些配置信息,确保文件写入的一致性等.

分布式异步处理—Gearman

Gearman 系统用来把工作委派给其他机器,分布式的调用更适合做某项工作的机器,并发的做某项工作,在多个调用间做负载均衡,或用来在调用其它语言的函数。

通常,多语言多系统之间的集成是个大问题,一般来说,人们多半会采用WebService 的方式来处理此类集成问题,但不管采用何种风格的WebService,如RPC 风格,或者REST 风格,其本身都有一定的复杂性。相比之下,Gearman 也能实现类似的作用,而且更简单易用。

一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。

  1. Client:请求的发起者,可以是C,PHP,Perl,MySQL UDF 等等。
  2. Job:请求的调度者,用来负责协调把Client 发出的请求转发给合适的Work。
  3. Worker:请求的处理者,可以是C,PHP,Perl 等等。

因为Client,Worker 并不限制用一样的语言,所以有利于多语言多系统之间的集成。甚至我们通过增加更多的Worker,可以很方便的实现应用程序的分布式负载均衡架构。

高性能的HTTP和反向代理服务器—Nginx

它是一个十分轻量级、高性能的HTTP服务器Nginx,同时也是一个IMAP/POP3/SMTP代理服务器。Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。

分布式内存共享—Memcache

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。Memcached由Danga Interactive开发,用于提升LiveJournal.com访问速度的。LJ每秒动态页面访问量几千次,用户700万。Memcached将数据库负载大幅度降低,更好的分配资源,更快速访问。

高可靠、高性能的TCP/HTTP负载均衡器—HAProxy

HAProxy是一款提供高可用性、负载均衡 以及基于TCP和HTTP应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。HAProxy最主要的特点是性能,HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy完全可以支持数以万计的并发连接。并且HAProxy的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。