NoSQL网站服务架构

服务器划分

      
对于访问量大之网站而言,将网站的顺序部分拆分分别配备至不同服务器上是格外有必要的。例如将图片与web站点分开。一般而言,在网站的一体服务器部署及分为如下几种植档次:

      
文件服务器:貌似存储系统的相关图片及文件,给每个子系统提供联合之公文调用

       代理服务器:相似采取linux+Nginx作为反向代理

       web服务器:.net中最好常用的Web服务器IIS,Mono中一般以Nginx

      
应用服务器:顶住系统受逐一业务逻辑的提供,比如用户基本,结算中心,支付基本等

       缓存服务器:提供MemCached缓存服务

      
数据库服务器:肩负网站数量的供,一般也Sqlserver,mysql,oracle等

带宽的计算

      
假设网站每天只要受100万pv的访问量,计算带富要涉及到个别只指标(峰值流量与页面平均大小),带富单位吗bps(bit/s)。

       1、假要峰值流量也平均流量之5倍增;

       2、假设每次看的平分页面大小为100KB左右。

       1B=8b———————1B/s=8b/s(1Bps=8bps)

       1KB=1024B ————- 1KB/s=1024B/s

       1MB=1024KB————1Mps=1024KB/s

      
100万pv访问量一天平均分布,折合每秒大约访问12浅,页面大小也字节(Byte),总共访问页面大小就是12*100KB=1200KB,1Byte=8bit,则1200KB=9600Kb,9600Kb/1024大约9Mb/s(9Mbps),我们网站在峰值流量时必定要保障健康访问,则实在带富应该于9M*5=45Mbps左右。

网站架构的演化过程有

供销社正起步,业务量不要命,往往可能于某虚拟主机空间商租用一个虚拟主机和一个数据库就搭建了一个最好中心的网站

 NoSQL 1

网站架构的嬗变过程的二充实缓存

乘机业务量增多,用户的访更多,网站经常性的起不上马,慢,甚至出现数据库链接达到最特别范围数,这个时候需要对网站做片优化策略:

  • 减Http请求,压缩css,js,图片的轻重
  • 以Microsoft Ajax Minifier集成到VS2010对准JS,CSS进行编译时压缩
  • 增加页面缓存和充实多少缓存处理
  • cnblogs上的苏存全分析
  • 自购服务器进行IDC托管
  • 自购服务器会晋级硬件的程度和带来富得擅自支配,一般都是独享带宽,相比共享带富来说能够支持更多之访问量

 NoSQL 2

网站架构的演化过程的三充实web服务器

      
当系统访问量的再增加,webserver机器的压力在高峰会上升至较高,这个时段起考虑多一玉WebServer,但是多一玉WebServer的时节表示要于有限台底服务器上各自立平等之站点,那么就是见面起如下问题:

       如何被看分配到即片宝机器及?Nginx

       如何保持状态信息之一块儿,例如用户session等?

       正常考虑的方案来描绘副数据库、开启状态服务器、cookie、写副缓存等。

       如何保持数据缓存信息之齐?

       缓存服务器

       如何为上污染文书这些近似的功效继续健康?

       采用文件服务器统一保管

网站架构的演变过程的四分库,分表,分布式缓存

通过长web服务器享受了同样段落快速访问的甜蜜后,发现系以开始变慢了,经过查找,发现数据库写入、更新的这些操作的部分数据库连接的 资源竞争异常凶猛,导致了网变慢,这生怎么惩罚吧?

分库

分表

Memcache,Redis分布式缓存

NoSQL 3NoSQL 4NoSQL 5

水平分区 VS 垂直分区

 

水平

垂直

存储依赖

可跨越DB
可跨越物理机器

可跨越表空间,不同的物理属性
不能跨DB存储

存储方式

分布式

集中式

扩展性

Scale Out(横向扩展,增加便宜设备)

Scale Up(升级设备)

可用性

无单点

存在单点(DB数据本身)

价格

低廉

适中,甚至昂贵

应用场景

web 2.0

 

搭演变过程的五Web园或增加又多WebServer

当开了分库分表这些干活儿晚,数据库及之压力一度降到比小了,这个时或至了生一个瓶颈,查看windows的性能计数器发现发恢宏底短路请求,于是可以举行Web园或者加上一些webserver服务器。在是补偿加webserver服务器的过程,有或会见起如下几个问题:

如出一辙雅Nginx服务器的软负载已经力不从心负担巨大的web访问量了,可以用硬件负载解决F5或行使由逻辑上召开肯定之归类,然后分散到不同的软负载集众多中

原来的一些态信息并、文件共享等方案可能会见油然而生瓶颈,需要进行改进,也许这上会冲事态编写符合网站业务需求的分布式文件系统等;

当做扫尾这些工作后,开始进入一个好像完美的最好伸缩的期,当网站流量增加时,应对之缓解方案虽是时时刻刻的填补加webserver。

搭演变的六读写分离及降价存储方案

经长web服务器享受了同等段落快速访问的幸福后,发现系还要开变慢了,经过查找,发现数据库写入、更新的这些操作的一部分数据库连接的 资源竞争充分强烈,导致了网变慢,这生怎么惩罚呢,读写分离,订阅和通告

 NoSQL 6

降价存储方案Nosql

NoSQL = Not Only
SQL 指的是非关系型的数据库。随着互联网web2.0网站的起,传统的关系数据库在应付web2.0网站,特别是超大规模和强产出的SNS类型的web2.0纯动态网站都展示心有余而力不足,暴露了累累难以克服的题材,而非关系型的数据库则由其自身的特色得到了怪便捷的发展。

NoSql数据库大量以叫微博体系等事务性不赛之系

BigTable

MongoDB 

http://tech.it168.com/topic/2011/10-1/nosqlapp/index.html

搭演变的七入大型分布式应用时代与廉价服务器群梦想时代

透过地方是永而惨痛的长河,终于再次迎来了完美的期,不断的充实webserver就足以支持越来越强之访问量了,但是本部署在webserver上之死web应用都坏庞大 了,当多单团体还起来对那进展改动时,相当的不便民,复用性也一定糟糕,基本上每个组织还举行了或者多或者有失还的事务,而且部署与保护为是相当的麻烦,因为大之运用包在N台机器上复制、启动都用耗费成千上万的年月,出题目的时候呢未是甚好查,另外一个更糟糕的状况是挺有或会见出现有应用及之bug就导 致了都站还未可用,还时有发生另外的诸如调优不好操作(因为机器及配置的行使什么还设做,根本就无法展开针对的调优)等因素,根据这样的辨析,开始痛下决心,将 系统根据职责进行拆分,于是一个特大型的分布式应用就诞生了,通常,这个手续需要吃一定长之时空,因为见面逢很多的挑战:
1、拆成分布式后要提供一个强性能、稳定之通信框架,并且要支持多种不同的通信和长距离调用方式;
2、将一个巨之用拆分需要吃很丰富之年月,需要进行工作的盘整与系统依赖关系之决定等;
3、如何运维(依赖管理、运行状况管理、错误追踪、调优、监控和报警等)好这个大之分布式应用。
透过及时同样步,差不多系统的架构上相对稳定的等,同时也克开始应用大量之跌价机器来支持着英雄的访问量和数据量,结合当下套架构和这么累演化过程吸取的经验来使用其他各种各样的艺术来支撑着更加高的访问量。

CDN内容分发网络

什么是CDN?

CDN的全称是Content Delivery
Network,即情节分发网络。其目的是经过在现有的Internet中长一重合新的网架构,将网站的情节发布暨最接近用户的纱”边缘”,使用户可
以就近得到所要的情节,解决Internet网络堵塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带来富小、用户访问量十分、网点遍布不咸等
原因,解决用户访问网站的响应速度慢的根本原因。

狭义地讲,内容分发布网(CDN)是一致种植时的网络构建方式,它是吗可知以传统的IP网发布宽带丰富媒体要特意优化的网络覆盖层;而起广义的角
度,CDN代表了同样栽基于质量以及秩序的网络服务模式。简单地游说,内容发布网(CDN)是一个经过预谋部署之总体系统,包括分布式存储、负载均衡、网络要
求的重定向与内容管理4单如起,而内容管理和大局的网络流量管理(Traffic
Management)是CDN的主导所在。通过用户就近性和服务器负荷的判断,CDN确保内容因相同种极为高效之主意呢用户的要提供劳务。总的来说,内
容服务因缓存服务器,也如作代理缓存(Surrogate),它座落网络的边缘,距用户只有发生”一超过”(Single
Hop)之遥。同时,代理缓存是内容提供商源服务器(通常在CDN服务提供商的多少主导)的一个透明镜像。这样的架使CDN服务提供商能够代表他们
客户,即情节供应商,向最终用户提供尽可能好之体验,而这些用户是匪能够耐受请求响应时间来另延迟的。据统计,采用CDN技术,能处理任何网站页面的
70%~95%的情访问量,减轻服务器的压力,提升了网站的特性及可扩展性。

CDN 的办事原理

于描述CDN的实现原理,让我们先押人情的莫加缓存服务的看过程,以便了解CDN缓存访问方式跟不加缓存访问方式的歧异:

NoSQL 7

由上图可见,用户访问未用CDN缓存网站的历程为:

1)、用户向浏览器提供要拜访的域名;

2)、浏览器调用域名解析函数库对域名展开解析,以获得此域名对应的IP地址;

3)、浏览器采用所获得的IP地址,域名之劳动主机来数访问请求;

4)、浏览器根据域名主机返回的多寡显示网页的始末。

CDN的通俗明了就是是网站加速,可以化解跨运营商,跨地域,服务器负荷能力了小,带富了少等带动的网站打开速度迟滞等问题。网宿,睿江,蓝讯

NoSQL 8

一致性Hash算法

分布式架构中,节点的故障是不可避免的,当添加同去某同节点时,会导致大气散列数据失效,需要还散列。这表示这些丢失的数据而错过数据库被呼吁一不成以后才会以hash(key)
/服务器数 =服务器编号
重新散列缓存到相应之服务器上。这对高访问量的系统来讲影响是生可怜之。
众人以一致性Hash来解决此类问题

NoSQL 9

更多:一致性Hash算法(KetamaHash)的c#实现

参考:

http://www.cnblogs.com/genson/archive/2009/10/22/1587836.html

CDN

网站地图xml地图