百川产后月子护理中心网站建设 - 专业的产后月子护理中心网站建设

资讯热点
解释分布式Web架构中会话管理方法的优缺点

发布时间:2024-3-10 分类: 电商动态

正在进行Web开发的学生应该熟悉会话。它是服务器分配给客户端的会话标识符。浏览器将使用此标识符告诉服务器我是谁,服务器将这些不同的会话信息存储在内存中。从而区分请求来自哪个会话。在单机部署环境中,由于Web服务器和会话都在同一台计算机上,因此必须找到相应的会话数据。但是如果有2个Web服务器(A和B)提供服务,如果第一个请求落到A并创建会话,海瑶网站建设公司会解释如何确保下次B请求可以读取会话数据?

解决方案

下面有4种常见的解决方案。

 1、Session Sticky

这是最简单,最粗鲁的方法。核心思想是让同一会话的请求落到同一台服务器上。这与单台机器相同。我们可以在负载平衡上做一些识别和控制转发来实现这一点。 。这样做的好处是它可以简化会话作为单个机器的处理,并且它也可以方便地进行本地缓存,但缺点也很明显:

如果此服务器已关闭或重新启动,会话数据将丢失,分布式群集的高可用性功能将丢失。

负载均衡器上的负载增加,使其成为有状态,并且资源消耗更大,使其成为性能瓶颈。

 2、Session Replication

顾名思义,这是一个会话复制解决方案。核心思想是通过在服务器之间添加会话同步机制来确保数据一致性。

它似乎比第一个简单得多,并且没有第一个引起的缺陷,但在某些应用场景中仍然会有更严重的问题:

服务器之间的数据同步带来了额外的网络消耗。随着机器数量和数据量的增加,网络带宽将产生很大压力,这必然会导致延迟问题。

所有会话数据都存储在每个服务器上,如果会话数很大,它将占用服务器的大部分内存空间。

目前,许多应用程序容器都支持这种同步方法,因此当簇大小和数据量相对较小时,它是一个很好的解决方案。

 3、Session集中存储

这种方式的想法是以统一的方式存储和管理所有会话数据。所有应用程序服务器都需要通过会话服务器读取和写入会话:

这种方案的优点是会话的管理是独立的,职责是单一的,以及会话服务器的存储方式(内存,数据库,文档,NoSql等),以及向外部提供服务的方式是透明的。它不会给应用程序系统和负载平衡增加额外的开销。它不需要数据同步来确保一致性。它应该看起来很完美,但它也有一些小缺陷:

会话读写需要网络操作。与直接存储在Web服务器中的会话相比,增加了延迟和不稳定性。幸运的是,会话服务器和Web服务器通常部署在LAN中,这可以最大限度地减少此问题。

会话服务器的问题将影响所有Web服务,并且多机部署也会带来数据一致性问题。

每个项目都有自己独特的优势,也带来了新的问题。据说没有完美,只有权利是最好的。总的来说,当应用程序服务器和会话数据很大时,这种方法非常有用。

 4、Cookie Base

这种方案是基于cookie的传输实现的。核心思想非常简单。它是处理完整的会话数据并将其写入客户端cookie。客户端请求此cookie后,客户端将解析它。 Cookie数据获取会话信息,如下所示:

这种解决方案简单明了,以前的解决方案没有问题,但缺点也很明显:

即使使用特殊加密,通过cookie首先传递密钥数据当然也不安全。

如果客户端禁用cookie,则会直接导致服务不可用。

cookie的数据大小有限。如果传递的数据超出限制,则数据将异常。

携带大量数据以在http请求中传输会增加网络负担。类似地,服务器响应大量数据,这导致请求减慢,并且当传输量很大时,它很糟糕。

 总结

以上四种方案都是可行的解决方案。如上所述,每种方案都有各自的优缺点,并不完美。在实际应用中,我们必须根据需要进行权衡和权衡。这些都是相对常见的程序。我相信在实际操作和着陆过程中还会有其他问题。那些有经验的人可能会有一些其他的快捷方式,“常规”,欢迎讨论和交流。

« 如何制作爆金网红产品渠道推广篇? | 淘宝选择关键词的方法,你学会了吗? »