服务热线: 4007-166-188

服务器租用,服务器托管,云主机,IDC机房,云服务器,IDC提供商,唯一网络

热门: 服务器租用| 服务器托管| 云安全| 机柜大带宽| 网络安全
首页>帮助中心>运维资讯>数据库服务器分离-大型网站架构演变
关注企业中心微信公众号
微信公众号:唯一网络
我们的微信公众号
  • 1

需要帮助?

服务热线:
4007-166-188 在线咨询

数据库服务器分离-大型网站架构演变

发布时间: 2017/07/17    

一般情况一般项目WEB服务器与数据库均部署在一台服务器,文件上传,数据导入在一台服务器完成。web服务器与数据库服务器分离,文件上传与数据导入将分布在两台服务器或多台服务器之间。

大型网站的标准:海量数据和高并发访问量,本身业务和系统的复杂度。

网站的架构发生了那些变化?

用Java技术和单机构建的网站——》分布式构建

在大型网站中,最核心的功能就是计算和存储。数据库用来存储数据,而Application  Server完成业务功能和逻辑,是用于计算的。一个网站从小到大的演进可以说是围绕着这两个方面进行处理的。

演变过程及问题:

首先是一个单机的交易网站,只从简单的用户、商品、交易这几个功能构建网站

数据库服务器分离-大型网站架构演变

然后单击负载告警逐渐演变成数据库与应用分离。网站服务器从一台变两台。仍然采用JDBC连接数据库,知识在应用的配置中把数据库的地址从本机改到了另外一台机器上而已。

数据库服务器分离-大型网站架构演变

应用服务器负载告警,让应用服务器走向集群

两个问题需要解决:

1、最终用户对两个应用服务器访问的选择问题。

可以通过DNS来解决,也可以通过在应用服务器增加负载均衡设备来解决。

2、Session问题

HTTP协议本身是无状态的(一旦回答了请求,服务器就断开与客户端的连接),需要基于HTTP协议支持会话状态的机制。而这样的机制应该可以使Web服务器从多次单独的HTTP请求中看到会话,也就是知道那些请求是来自哪个会话的。

实现方式:在会话开始时,分派一个唯一的会话标识,通过Cookie把这个标识告诉浏览器,以后每次请求的时候,浏览器都会带带上这个会话标识来告诉Web服务器请求是属于哪个会话的。在web服务器上各个会话有独立的存储,保存不同会话的信息。如果遇到禁用Cookie的情况,一般的做法是吧这个会话标识放到URL参数中。

问题:会话数据需要保存在单机上。

解决方案:

1、session sticky

负载均衡设备根据每次请求的会话标识来进行请求转发。

让同样session的请求每次都发送到同一个服务器端进行处理,利于针对session进行服务器端本地的缓存。

有几个问题:

1、如果一台web服务器重启或死机,那么这台机器上的会话数据会丢失。

2、需要进行应用层(第七层)的解析,这个开销比第四层的交换要大。

3、负载均衡器变成了一个有状态的节点,要将会话保存在菌体web服务器的映射。和无状态的节点相比,内存消耗会更大,容灾方面会更加麻烦。

2、session replication

不再要求负载均衡器来保证同一个会话的多次请求必须到同一个web服务器上了。而我们web服务器之间增加了会话数据同步。通过同步保证了不同web服务器之间的session数据一致。

有几个问题:

1、同步session数据造成了网络带宽的开销。

2、每台机器用于保存session数据的内容占用会很严重。

3、session数据集中存储

session数据集中存储起来,然后不同的web服务器从相同的地方来获取session。修改数据也在这个地方。

存储session数据的具体方法,可以使用数据库,也可以使用其他分布式存储系统。session一定不是保存在主机的。

有几个问题:

1、对写session数据应用了网络操作,问题在于存在时延和不稳定性

2、如果集中存储session的机器或者集群有问题,就会影响我们的应用。

4、Cookie Based

session数据放在cookie中,然后在web服务器上从cookie中生成对应的session数据。

有几个问题:

1、cookie长度限制。

2、安全性

3、带宽消耗

4、性能影响

以上就是关于数据库服务器分离-大型网站架构演变的内容,希望能帮到您!

服务器租用/服务器托管最具实力IDC提供商!十年品牌保障 - 唯一网络!

转载请注明:唯一网络https://www.wy.cn/