电商架构设计初步(待完善!!!)

1.为什么需要vainish或者memcached缓存?

・缓存服务器把数据存在内存中,http或者mysql服务器是把数据存在硬盘上

・从内存中读取数据比从硬盘中读取数据快

・用户发来一个请求查看图片,缓存服务器线查看本地有没有,如果有直接返回给客户,如果没有就去http服务器去找,然后保存在本地内存中一份,再返回给客户一份

2.nginx和apache怎么处理php动态页面?

Apache用mod_php模块处理

Nginx用FastCGI处理

3.各节点的作用

・nginx作为反向代理:用户访问动态内容时分发到apache,访问静态内容时分到到nginx

・varnish:收到用户请求,如果缓存服务器里没有,就到web服务器中去找,然后先保存在本地服务器,再返回给客户

・rabbitmq消息队列:比如有4000个请求进来,rabbitmq服务器全部缓存起来,根据real server的处理能力来分配。

・HAproxy负载均衡:给apache real server做负载均衡,可以设置每个apache最多处理多少个请求(比如500)。4000个请求进来,haproxy设置每个real server最多处理500个,rabbitmq配合haproxy,让后端real server一直到处理完位置

・memcached:缓存数据库

・mysql-proxy:给mysql做读写分离,如果是读就转给读库,如果是写就转给写库

・lvs:给mysql读库做负载均衡

wKiom1XWnNigKKOLAAMYUQuxX08488.jpg

架构流程:

用户输入一个网址,经过DNS解析出IP地址,到达企业防火墙,如果访问的是动态内容,到varnish缓存服务器,如果,到rabbitmq消息队列,到haproxy根据算法交给一台apache real server处理,web服务器连接mysql-proxy如果是写交给写库,如果是读库交给lvs,lvs根据算法找到一台数据库,数据库把内容交给web服务器,web服务器在返回给客户


你可能感兴趣的:(mysql,server,图片,电商,web服务器)