微服务架构下分布式Session管理

本文探讨了微服务架构下分布式Session管理的挑战,分析了传统的Session管理方案如Cookie、Session复制和粘滞在分布式环境中的局限性。提出了在微服务中采用Session集中管理的必要性,推荐使用Redis作为存储介质,并对比了Memcache和Redis的优缺点。文中还建议参考Spring Session的实现,开发轻量级Session管理方案,以实现透明化的Session管理。
摘要由CSDN通过智能技术生成

转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究。如需加入微信群参与微课堂、架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号”。


一、应用架构变迁下的Session管理        1.1 单体架构        1.2 分布式架构        1.3 微服务架构 二、微服务架构下分布式Session管理        2.1 Session存储介质        2.2 管理方案实现 三、微服务架构下分布式Session管理方案 四、总结



0?wx_fmt=gif


应用架构变迁下的Session管理


Session一词直译为“会话”,意指有始有终的一系列动作/消息。Session是Web应用蓬勃发展的产物之一,隐含有“面向连接”和“保持状态”两个含义,同时也指代Web服务器与客户端之间进行状态保持的解决方案。


Web服务器与客户端基于HTTP协议进行通信,HTTP协议本身是无状态的,即每一次请求之间都相互独立。但是随着Web应用的发展,Web服务器需要按照用户的一系列业务操作向客户端提供某些特定的、按需的内容,这就需要想办法将原本相对独立的HTTP请求进行关联。Session管理正是上述问题的解决方案,把用户的信息与状态保存在Session中,弥补了Web应用中HTTP协议的不足。


Session管理作为Web应用的重要解决方案之一,随着Web应用架构的不断变迁,对Session管理方案的要求也变得越来越高。对于不同应用架构,Session管理方案也有所不同。


1.1 单体架构

单体架构即是指把一个使用了分层架构的Web应用部署在单节点Web服务器上的架构类型。


0?wx_fmt=jpeg
图1  单体架构应用示意图


在这种架构中,虽然采用了分层架构,将整个应用分为表现层、业务逻辑层和数据访问层,每一层各司其职,让Web应用的各方面能力有所改善。但是因为应用是单体的,所有代码都部署在一个Web服务器上,随着应用的不断迭代,将会变得臃肿不堪,难以进行维护。


单体架构中,Session管理方案是在用户进行登录的时候将Session存放在应用服务器的内存中,由于只有一个应用服务器节点,用户的所有请求都是这个唯一节点进行响应处理,所以能够轻松的达到保持用户状态的目的。


1.2 分布式架构

随着Web应用的迭代开发,应用代码的维护难度成为了单体应用的一大瓶颈,为了突破这一瓶颈,出现了分布式架构的概念,企业开始使用分布式架构来代替原有的单体架构。



0?wx_fmt=jpeg


  图2  分布式架构应用示意图


在分布式架构中,把原来的单体架构应用,按照不同的功能模块,拆分成若干个较小的应用,分别部署到若干个服务器上。这些服务器上的应用模块,各自提供相应的分布式服务,共同协作,为用户提供服务。


此时的服务器架构中,不再是单一的应用服务器节点,而是有多个服务器节点同时为用户

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值