文档章节

web架构提纲

Scofieldxs
 Scofieldxs
发布于 2015/08/17 11:24
字数 919
阅读 90
收藏 11

###好文章 负载均衡详解 大型网站架构系列:电商网站架构案例

###服务器并发处理

吞吐率:单位时间服务器处理的请求数

内存分配:

1.apache:内存使用较多,多进程模型。使用内存池策略管理内存,因此启动时申请大量内存

2.lighttpd:单进程模型

##缓存 ###1.动态内容缓存

####页面缓存:把动态页面输出的HTML进行缓存

  • 对于更新频率低的页面生成静态*.html页面放在nginx服务器上

  • 动态请求再交给java服务器

  • 工具:ehcache,oscache

  • 缓存可以放在磁盘上、内存中、独立的缓存服务器。工具:memcached

  • 页面局部缓存

  • 制定更新策略:改变时更新或定时更新

###2.浏览器缓存

  • 服务器返回:Last-modified:时间
  • 浏览器下次访问:If-Modified-Since:时间
  • 服务器回复:304 Not Modified

除了减少服务器开销,还能减少带宽开销

###3.web服务器缓存

根据url判断是否缓存,

###4.反向代理缓存

web服务器隐藏在代理服务器之后,将缓存放入代理服务器中,代理服务器决定使用缓存还是讲请求发送给后端服务器

代理服务器有:Varnish,squid

ESI(edge side includes):局部缓存:反向代理服务器只向后台请求更新内容,不变内容进行缓存 SSI(server side includes):是在web服务器端组装,而ESI在代理服务器上组装内容

###5.分布式缓存

memcached

1.读缓存:相当于使用了数据库的前置读缓存

2.写缓存:把频繁更新的内容先写入memcache,定期更新到持久层

负载均衡问题:对key取余

相同思路:组件分离:

将不同文件部署到不同服务器上,如图片服务器

可以提高浏览器下载资源并发数。因为浏览器对同一个域名下的并发数有限制。

##负载均衡

#####1.DNS负载均衡 DNS服务支持一个域名指定多个IP,可以采用轮询调度策略

CDN(内容分发网络):按照指定规则映射域名ip,按地理位置,将近的Ip返回给用户

#####2.IP负载均衡 工作在网络层和传输层,通过修改ip或者端口实现,效率高

Linux的iptables,LVS

#####反向代理负载均衡 转发HTTP请求到不同服务器,工作在应用层

粘滞会话:因为session信息需要将一个用户请求映射到同一台机器上。

通过根据用户ip计算的hash来做映射

##网络文件系统

目的:在多台服务器间共享文件

NFS :通过RPC协议传输

###内容分发和同步 目的:一台文件服务器不够用,内容复制多分到多台机器上 #####两种方式:主动分发和被动同步 主动分发:SCP

被动同步:rsync

###分布式文件系统

思路:负载均衡,请求分散到多个服务器上-->NFS实现文件共享--> 集中访问吃力,创建多个副本,复制到多个服务器上--> 分发和同步麻烦,分布式文件系统

hadoop


###数据库扩展

####1.主从复制 主从复制依据二进制日志进行

####2.读写分离 写操作在主服务器进行,读操作在从服务器进行

用MySql Proxy实现

####3.垂直分区 将不相干业务放到不同服务器上

####4.水平分区 同一个表分到两台服务器,根据Id奇偶性选定数据库

分区需要考虑扩展性

© 著作权归作者所有

共有 人打赏支持
Scofieldxs
粉丝 3
博文 24
码字总数 26524
作品 0
海淀
分享个 PPT —— OSCHINA 技术架构介绍

这份 PPT 是为周日在深圳的 oschina 聚会准备的,主要是从纯技术角度对 oschina 整个网站做了一个介绍,该PPT是一个提纲,没有太具体的内容,临场发挥的。 oschina 的技术架构只是一家之言,...

红薯
2011/06/23
4.5K
23
微服务的模式语言(A pattern language for microservices)

本文内容译自http://microservices.io/。 注:模式语言提供了讨论问题的交流术语。微服务作为一个现在流行的服务架构,也有一套自己的模式。这篇文章是微服务相关模式语言的一个提纲。从不同...

开源中国驻成都办事处
2016/10/14
84
0
开始打算续写《重构之美》。

希望能续写下《重构之美》,把自己一年半以来不间断应用web标准的感触记录下来。 先整理一下思路和提纲: web标准与.net 2.0 web标准与Javascript web标准与Xml web标准与团队建设 web标准与...

吞吞吐吐的
2017/08/25
0
0
网站性能优化之应用程序缓存-初篇

一. 摘要 首先声明这篇服务器缓存篇是我平时工作中的一些经验心得,对没有用过,或者不知道如何使用服务器缓存的朋友们提供一个简单的认识与实现思路,本文只是抛 砖引玉,还请各位多多提出宝...

何戈洲
2010/09/09
0
0
Bootstrap开发框架视频整理

最近到客户处进行实地培训,整理了很多培训的材料,现将它们录制相关主题的视频,作为我的Bootstrap开发框架的知识补充,希望给感兴趣的朋友进行了解。培训内容主要包括基础框架部分、MVC框架...

伍华聪
07/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring中static变量不能@value注入的原因

今天本想使用@Value的方式使类中的变量获得yml文件中的配置值,然而一直失败,获得的一直为null。 类似于这样写的。 public class RedisShardedPool { private static ShardedJedisPool pool...

钟然千落
今天
2
0
CentOS7防火墙firewalld操作

firewalld Linux上新用的防火墙软件,跟iptables差不多的工具。 firewall-cmd 是 firewalld 的字符界面管理工具,firewalld是CentOS7的一大特性,最大的好处有两个:支持动态更新,不用重启服...

dingdayu
今天
1
0
关于组件化的最初步

一个工程可能会有多个版本,有国际版、国内版、还有针对各种不同的渠道化的打包版本、这个属于我们日常经常见到的打包差异化版本需求。 而对于工程的开发,比如以前的公司,分成了有三大块业...

DannyCoder
今天
2
0
Spring的Resttemplate发送带header的post请求

private HttpHeaders getJsonHeader() { HttpHeaders headers = new HttpHeaders(); MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8"); ......

qiang123
昨天
3
0
Spring Cloud Gateway 之 Only one connection receive subscriber allowed

都说Spring Cloud Gateway好,我也来试试,可是配置了总是报下面这个错误: java.lang.IllegalStateException: Only one connection receive subscriber allowed. 困扰了我几天的问题,原来...

ThinkGem
昨天
38
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部