海量数据架构设计概念

[TOC]

无状态

指不会存会话,便于应用水平扩展。

一般采用session集中管理,多个无状态应用连接到同一个session服务器。或者像淘宝那种,采用client cookie而无session。

数据闭环

数据实现自我管理,不依赖其他任何一个系统。

首先是数据异构,把各个依赖系统的数据拿过来存储。异构的数据是原子的,便于再处理加工。

然后是数据聚合,按照所需把原子的数据聚合起来,组成json数据。

这儿的异构依赖MQ等队列机制来接受数据变更。

浏览器缓存

设置请求的过期时间,入响应头Expires,Cache-control进行控制。

CDN缓存

通过推送或者拉取机制更新内容。将静态资源部署在离用户最近的节点上。

接入层缓存

负载均衡

负载均衡作为应用服务器的流量入口,将用户的请求转发给它,实现客户端到真实服务器的透明转发。

lvs一般比nginx,haproxy性能要好些。它是建立在传输层上面的,可以对HTTP,聊天室,数据库做负载均衡,而且性能达到了硬件服务器的60%,其他的只有10%左右。仅仅做请求分发,本身没有流量。

nginx工作在应用层,可以针对HTTP本身来做分发,比如域名,目录等。配置简单。

负载均衡调度算法:

最少连接方式,最快模式,观察模式(根据连接数和响应时间),预测模式,动态性能分配,规则模式等。

反向代理的模式

同步模式:(apache-mod_proxy和squid),浏览器发起请求,立刻被转发到后台,直到请求结束,这个通道一直存在。这种性能不如异步模式,后端要维护很多连接。

异步模式:(lighttpd 和 nginx),浏览器发起请求,请求数据先发送到nginx,结束后再发送给后台,后端处理后,先发送给nginx,nginx再发送给用户。

正向代理和反向代理

正向代理:通过代理服务器访问原始服务器的数据。

反向代理:反向代理服务器相当于原始服务器,用户直接访问,而真实返回的数据是反向代理服务器从其他服务器取得的,但是给人感觉就像反向代理服务器提供的。

← LINUX下字符相关命令  永久的记忆——排序算法解析 →