2016.08.28

-session

记录某一个ip的用户在某个网站上浏览的一段时间内的信息


-web server

很大程度上可以说就是一个http server

作用是呈现html网页给用户,并且将用户的request交给正确的app处理,再将结果返回给用户。


-app server

处理request的应用程序真正所在的地方。


-nginx

Created in 2002。非阻塞异步处理请求,可以处理的并发量非常大,并且占用资源相对较小。


-apache

Initial release in 1995。同步阻塞处理请求。非常稳定,功能齐全。


-load balancer

有不同含义:

1.单个运算分给多个节点同时执行,提高速度(clustering技术)

2.将并发访问平均的分配给多台服务器

实现:

早期通过DNS实现。但是DNS不能区分服务器的差异,也不能反映服务器的当前运行状态。

(反向)代理服务器也可以实现负载均衡。


-proxy

对服务器来说proxy就是用户端(request的来源)

作用:隐藏真实用户,提高安全性。可以连接本来会被拒绝的服务器;改变连接路径。如直接连接服务器的线路有问题时可以改变连接线路;缓存网站内容,加速响应


-reverse proxy

对用户来说reverse proxy就是网站的服务器

作用:隐藏真实服务器,作为防火墙使用。实现负载均衡。缓存网页


-三种主流的web服务实现方案REST、SOAP、XML-RPC

XML-RPC已慢慢的被SOAP所取代,现在很少采用了

SOAP在成熟度上优于REST。SOAP安全性高于REST,因为REST更关注的是效率和性能问题


-RESTful(Representational State Transfer)

一种设计风格,不是标准。REST指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。

“Web应用程序最重要的REST原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。”因此即使途中连接用户的服务器改变了用户也不会感觉到有什么影响。

REST依赖于简单的URL并使用4种基本的HTTP操作(GET, POST, PUT and DELETE)来提供服务。


-SOAP

使用XML传输数据,格式比较复杂。soap用来描述传递信息的格式


-IDC

Internet Data Center

数据中心,也可以指一种服务。是网络基础资源的一部分


-RDB

优点:

二维表结构容易理解,表与表之间的关系也贴近实际概念。

对完整性有约束条件,可以降低数据重复的概率

可以长久保存数据,并保持数据之间正确的关系

瓶颈:

高并发读写(硬盘IO速度)

读写效率(表太大,关系复杂时查找会非常花时间)

表的结构固定,系统升级需要新的结构的表时修改会很麻烦。


-NoSQL

Not Only SQL

优点:

表单的结构很灵活,可以快速查询数据并且数据迁移时很方便。

限制:

大多数不能够提供像SQL的where这种对于字段属性值情况的查询。

数据约束很少,难以体现设计的完整性。只适合存储一些较为简单的数据。

不同类型的NoSQL:

键值(key-value)储存数据库:具有极高的并发读写性能

列储存数据库:表的一列存在一起。适合批量数据处理和即时查询

文档型数据库:一个文档作为一条数据,包含所有信息。可以在海量的数据中快速的查询数据


-MongoDB

特点:

文档型数据库

数据被分组储存在数据集(collection)中,每个数据集中包涵了所有相关的数据。

不需要定义schema

可以使用sql对某个属性查询


-Memcached

作用:

缓存数据库查询结果,减少数据库访问次数,以提高动态Web等应用的速度、提高可扩展性

特点:

采用客户端实现分布式存储

MemCached不支持数据持久化

工作流程:

1.用户请求memcache server获得数据

2.如果memcache server没有数据则memcache

server将请求转给database

3.保持缓存中数据的新鲜性

应用场景:

动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况(如人人网大量查询用户信息、好友信息、文章信息等)。


-Reids

特点:

支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API

3.0后可以支持服务器端构建分布式存储

支持数据持久化和数据恢复,允许单点故障,但是同时性能也会有所降低

应用场景:

适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统(如新浪微博的计数和微博发布部分系统,对数据安全性、读写要求都很高)。

推荐阅读更多精彩内容