我想肯定有很多JAVAer像我一样自学出来,没有接触过太高端的技术的人,写这篇文章就是想能整理一个大型Web站点(手机应用也可归于此类)的技术。作为从业者,至少应该了解这些东西。先来说说一套最完整的架构吧,也不知道能不能用架构二词。从上到下依次是:
网络层:
1.GSLB
GSLB 是英文Global Server Load Balance的缩写,意思是全局负载均衡。作用:实现在广域网(包括互联网)上不同地域的服务器间的流量调配,保证使用最佳的服务器服务离自己最近的客户,从而确保访问质量。
2.F5、radware、Citrix
几家做Internet多出口链路负载的方案龙头提供商,作用是:将流量合理的分配到各链路、准确的引导访问用户流量。通过最快的链路访问网络资源,并保障各链路流量分布均衡,既能充分利用带宽资源又能实现网络的最快访问
软服务器均衡分发:
代表作:nginx、haproxy、apache
nginx
轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,特点:占有内存少,并发能力强。并且被百度、京东、新浪、网易、腾讯、淘宝所使用(当然,是自己自定义过的)
HAProxy
HAProxy实现了一种事件驱动,单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。代表用户:GitHub、Bitbucket、Stack Overflow、Reddit、Tumblr、Twitter和Tuenti在内的知名网站
apache
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。重要apache组件:
1.SSO Module -LemonLDAP,实现了 Web SSO 的模块,可处理超过 20 万的用户。
2.limitipconn,限制每个 IP 的并发连接数。支持 Apache 1.x 和 2.x。
3.mod_backhand,负载平衡模块 。它定义了每个请求的HTTP重定向在一个异构的Apache服务器群集。每个请求的处理,并贯穿了一套“候选人的职能” ,以确定哪些服务器是最适合的回应。
注:Web SSO :SSO英文全称Single Sign On,即web端单点登录。
Server与WebServer夹层
代表:squid
它位于本地WEB服务器和Internet之间,处理所有对WEB服务器的请求,组织了WEB服务器和Internet的直接通信。如果互联网用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。这种方式通过降低了向WEB服务器的请求数从而降低了WEB服务器的负载。
webServer
代表:tomcat、jetty
熟悉的各位,这个不用介绍了吧?
数据缓存
代表:memcached、redis
这个相信很多人也接触到了,将数据存放在内存中,内存数据库。可以看成是一个效率很高的数据库,之后关于同步的session问题也将由其托管。
DB层
一般就是做下读写分离
其余还有:CDN,静态资源服务器另外存放,多域名访问。
技术名词:
QPS(TPS):每秒钟request/事务 数量
并发数:系统同时处理的request/事务数
PV :Page View
整理于网络,有什么不对之处还烦请指出