当前位置: 首页 > news >正文

国家示范校建设专题网站工商网站备案办法

国家示范校建设专题网站,工商网站备案办法,德州做网站建设的公司,合肥手机网站制作我用「餐厅点餐代码实战」帮你彻底搞懂分布式Session#xff0c;看完不仅能应对面试#xff0c;还能直接应用到实际开发。先记住这个核心矛盾#xff1a;多服务员如何记住同一顾客的喜好#xff1f; 一、从生活场景理解Session的本质 传统单机场景#xff08;小餐馆…我用「餐厅点餐代码实战」帮你彻底搞懂分布式Session看完不仅能应对面试还能直接应用到实际开发。先记住这个核心矛盾多服务员如何记住同一顾客的喜好 一、从生活场景理解Session的本质 传统单机场景小餐馆 服务员Tom唯一服务员工作流程 顾客首次点餐 → Tom给纸质会员卡SessionIDTom把顾客口味记录在自己的笔记本服务器内存顾客下次出示会员卡 → Tom查笔记本提供服务 分布式场景连锁餐厅 服务员Tom、Jerry、Lucy多个服务器节点致命问题 顾客第一次找Tom存了爱吃辣 → 第二次请求被分配到Jerry → Jerry一脸懵逼 二、分布式Session五大解决方案 方案1黏性会话Sticky Session 原理让同一用户的请求始终路由到同一服务器实现Nginx配置ip_hash upstream backend {ip_hash; # 像给顾客发固定服务员工牌server 192.168.1.101:8080;server 192.168.1.102:8080; }优点零改造成本缺点 服务器宕机 → Session丢失相当于服务员请假笔记本被带走扩容缩容困难新服务员没有历史记录 方案2Session复制同步广播 原理所有服务器实时同步Session数据实现Tomcat配置集群 Cluster classNameorg.apache.catalina.ha.tcp.SimpleTcpCluster/优点任意服务器都可响应缺点 网络带宽消耗大相当于每天让所有服务员互相抄笔记不适合大规模集群超过10个节点性能暴跌 方案3集中存储重点掌握 原理把Session存到独立存储服务架构用户 → 负载均衡 → 任意服务器 → Redis/Memcached代码示例Spring Session Redis 添加依赖 dependencygroupIdorg.springframework.session/groupIdartifactIdspring-session-data-redis/artifactId /dependency配置Redis连接 EnableRedisHttpSession public class Config {Beanpublic LettuceConnectionFactory connectionFactory() {return new LettuceConnectionFactory(redis-host, 6379);} }使用Session与单机完全一致 GetMapping(/login) public String login(HttpSession session) {session.setAttribute(user, 码农阿杜); // 自动存到Redisreturn 登录成功; }优点 服务器无状态方便扩容数据持久化服务器重启不丢失 缺点 增加网络延迟多一次存储访问需要维护中间件 方案4客户端存储JWT方案 原理把Session数据加密后直接存Cookie代码示例// 生成Token String token Jwts.builder().setSubject(user123).claim(role, admin).signWith(SignatureAlgorithm.HS256, secretKey).compact();// 验证Token Claims claims Jwts.parser().setSigningKey(secretKey).parseClaimsJws(token).getBody();优点彻底解决服务端存储问题缺点 Token无法主动失效相当于会员卡永久有效数据大小受Cookie限制 方案5Session共享协议Token数据库 实现流程 登录成功生成tokenUUID把token和用户数据存入数据库每次请求携带token查询数据库 代码示例// 生成Token String token UUID.randomUUID().toString(); redisTemplate.opsForValue().set(token, userInfo, 30, TimeUnit.MINUTES);// 拦截器验证 String token request.getHeader(X-Token); User user redisTemplate.opsForValue().get(token); if(user null) throw new AuthException();优点灵活控制存储方式缺点需要手动管理生命周期 三、方案选型决策树 是否需要服务器完全无状态 ├─ 是 → 客户端存储(JWT) └─ 否 → 是否需要高并发├─ 是 → 集中存储(Redis)└─ 否 → Session复制(小集群)/黏性会话(稳定集群)四、面试高频问题 Q1如何防止Session劫持 防御措施 使用HTTPS防止网络嗅探Cookie设置HttpOnly和Secure定期更换SessionID如每10分钟 Q2分布式Session过期时间如何设置 黄金法则 基础过期时间30分钟滑动过期每次访问刷新有效期 // Redis示例 redisTemplate.expire(sessionId, 30, TimeUnit.MINUTES);Q3Spring Session的实现原理 核心机制 通过Filter替换原生HttpSessionSessionRepositoryFilter包装请求/响应实际存储委托给Redis等实现 五、生产环境最佳实践 Session数据最小化只存必要信息如userId读写分离Redis主从架构提升读取性能降级方案在Redis故障时自动切换本地缓存监控预警监控Session存储容量和延迟 一句话总结 分布式Session的本质是把服务员们的笔记本换成中央档案室 掌握这个本质所有解决方案都是围绕存储位置和同步方式的设计权衡。 补充 方案3和方案5确实都涉及外部存储但它们的核心差异在于数据管理层次和实现方式。我用餐厅工作流程对比帮你彻底分清这对「双胞胎」 本质区别对比表 方案3集中存储Spring Session方案5Session共享协议TokenDB管理层次Web容器层自动管理对开发者透明应用层手动管理需要显式编码存储内容完整Session对象序列化存储自定义业务数据如用户ID、权限等标识传递自动通过Cookie传递JSESSIONID手动通过Header/Param传递自定义Token数据读写框架自动完成如Spring Session Filter拦截读写需要手动编写存取代码典型应用传统Web应用迁移到分布式环境前后端分离架构/APP接口 餐厅版对比解释 假设餐厅要记录顾客的「忌口清单」 方案3中央档案室Spring Session 服务员直接说“忌口清单存总部”每次顾客出示会员卡 → 服务员自动联系总部查清单优势服务员工作方式不变只是数据位置换了 方案5自定义登记表TokenDB 服务员需要 设计新的登记表格定义Token格式手动打电话给总部“把顾客A的清单给我”更新后主动回传总部“这是顾客A的新清单” 优势完全掌控数据格式和流程 代码级区别演示 方案3典型代码无感知 // 和单机Session用法完全一致 HttpSession session request.getSession(); session.setAttribute(user, user); // 自动存入Redis方案5典型代码全手动 // 登录时生成并存储 String token UUID.randomUUID().toString(); redisTemplate.opsForValue().set(token, user.getId(), 30, TimeUnit.MINUTES);// 拦截器中验证 String token request.getHeader(X-Token); if(!redisTemplate.hasKey(token)) {throw new UnauthorizedException(); } Long userId redisTemplate.opsForValue().get(token);如何选择 选方案3如果 已有传统Web应用需要改造想保持原有Session API写法不介意依赖Spring生态 选方案5如果 全新设计的前后端分离系统需要精细控制Session数据结构追求轻量化/去框架依赖 一句话总结区别 方案3是让框架帮你搬行李的旅行社方案5是自己打包的自助游 两者最终都到达目的地完成分布式Session但过程体验和自由度截然不同。
http://www.hkea.cn/news/14560854/

相关文章:

  • 如何建设一个博客网站教育网站建设备案
  • php 家政网站ps切片工具做网站
  • 湖北省住房和建设厅官方网站企业网站怎么制作流程
  • 500元制作网站asp 网站数据库连接错误
  • 网站建设培训网站天辰建设网
  • 海报在线制作网站dz网站模板 首页显示内容
  • 个人网站转为企业网站石碣网站建设
  • 网站地图1 500 怎么做百度服务中心电话
  • 做取名的网站很赚钱吗模特公司网站模板
  • 网站开发项目总结昆明软件开发培训
  • 企业网站制作是什么设计本子封面
  • 两个域名同时指向一个网站阿里云建网站流程
  • 广州网站建设厂家百度竞价排名官网
  • vpn网站模板茂名手机网站建设公司
  • 新建网站如何推广湖人最新消息
  • 网站如何安装wordpress电子商务网站建设研究
  • 江西旺达建设工程有限公司网站软件工程就业方向和前景
  • 承德做网站的公司学校网站首页设计图片
  • 邓砚谷电子商务网站建设wordpress主题汉化中文版
  • 湖北省建设工程质量协会网站云主机推荐
  • 织梦网站主页代码在后台怎么改电影wordpress
  • 淘宝客单页网站程序小程序在哪里
  • 京东网站开发技术福州什么推广网站好
  • 文化网站模版加载wordpress外部文件路径
  • 360免费建站 服务期seo营销是指
  • 商城类型的网站怎么做济南商务网站建设
  • 张家港市做网站的公司建站cms
  • 广西网站建设推广服务谷歌官方网站注册
  • 合肥培训网站建设汕头网站优化
  • 国外建设网站流程app推广方式有哪些