1、F5 BIG-IP 硬件实现session粘性复制

F5 硬件,可以作为HTTP负载均衡器使用,可以将用户IP与Session通过F5进行的绑定,使其Session保持一致性。是直接通过智能交换机实现负载,与系统无关。了解不多,简单说就这么多。

2、Nginx 的ip_hash特性对访问IP和服务器进行绑定

当某个ip下的客户端请求指定(固定,因为根据IP地址计算出一个hash值,根据hash值来判断分配给那台服务器,从而每次该ip请求都分配到指定的服务器)的服务器,这样就可以保证有状态请求的状态的完整性,不至于出现状态丢失的情况。缺点: ip_hash方案必须保证Nginx是最前端的服务器(接受真实的ip),如果nginx不是最前端的服务器,还存在中间件(中间服务器什么的),那么nginx获取的ip地址就不是真实的ip地址,那么这个ip_hash就没有任何意义。

3、将session保存到nosql数据库中(推荐)

这个方案有很多种方式:1、 使用框架的会话管理工具spring-session ;2、 使用shiro这种自带session(非httpsession)的权限框架 。

可以存到redis 或者 memcache 中。

先说第一种,它替换了Servlet那一套会话管理,既不依赖容器,又不需要改动代码,并且是用了spring-data-redis那一套连接池,可以说是最完美的解决方案。

第二种前提你的项目中用到了shiro, 需要重写shiro的SessionDao将session存入redis来实现session共享,可以自己重写或者找现成的(shiro-redis)。

4、使用Cookie共享session

Java Web的共用的用户鉴权机制是采用Session-Cookie技术,实现原理是:用户登录时,请求到达服务器,服务器调用通过getSession()方法判断session是否存在,如果不存在,则新建session,并通过其算法为session生成一个随机数作为sessionId,开发者可在session中储存一些用户信息;第二次请求时,如获取用户信息,getSession()方法判断session存在,则取出session,而不是新建,从而从session中获取到用户的相关信息。

客户端请求时,可以将cookie信息储存于request的head中发送给服务器;

服务器响应时,可以将cookie信息置于response中回传给客户端。

此方案可以说是独辟蹊径了,将分布式思想用到了极致。如上文分析所说,session-cookie机制中,session与cookie相互关联,以cookie做中转站,用来找到对应的session,其中session存放在服务器。那么如果将session中的内容存放在cookie中呢,那么则省略了服务器保存session的过程,后台只需要根据cookie中约定的标识进行鉴权校验即可。

此法, 受http协议头长度限制,cookie中存储的信息不宜过多 ,同时cookie在浏览器可以被看到,不太安全,需要进行加密处理。

至于常用的web容器,tomcat和weblogic都有自己的session共享方案,后面再研究。

java集群session共享_分布式/集群下session共享方案汇总相关推荐

  1. Hadoop集群安装部署_分布式集群安装_02

    文章目录 一.上传与 解压 1. 上传安装包 2. 解压hadoop安装包 二.修改hadoop相关配置文件 2.1. hadoop-env.sh 2.2. core-site.xml 2.3. hd ...

  2. Hadoop集群安装部署_分布式集群安装_01

    文章目录 1. 分布式集群规划 2. 数据清理 3. 基础环境准备 4. 配置ip映射 5. 时间同步 6. SSH免密码登录完善 7. 免密登录验证 1. 分布式集群规划 伪分布集群搞定了以后我们来 ...

  3. tcp out of order解决_分布式集群解决方案 学习笔记

    回到目录: OrangeZh:拉勾教育:JAVA高薪训练营 学习技术篇​zhuanlan.zhihu.com 介绍 文章内容输出来源:拉勾教育 Java高薪训练营 分布式集群解决方案相关 什么是分布式 ...

  4. Hadoop安装教程_分布式集群

    安装前的准备 伪分布式的设置 集群的规划 集群的初始设置 网络配置 SSH无密码登陆 java及apache环境设置 安装流程 主机的安装 集群的安装 效果与验证 安装注意 模式切换 参考资料 安装前 ...

  5. java集群_Kafka多节点分布式集群搭建实现过程详解_java

    上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...

  6. 集群的可扩展性及其分布式体系结构(2)-下

    本文内容包括: 可扩展的并行计算体系结构 可扩展与单一系统映象 集群的重要指标 结束语 参考资料 这篇文章是<集群的可扩展性及其分布式体系结构>第二篇的下半部分,将继续介绍常见的几类并行计 ...

  7. java站群系统_分布式站群系统设计与实现

    摘  要: 分析了高等院校构建网站时遇到的普遍问题,提出了文件分布存储.数据集中存储的设计思想,并且在Java EE平台上设计和实现了分布式站群管理系统,其站点分布式部署.高度的代码共享.内嵌的网页编 ...

  8. java 内存映射文件进程间通讯_[转]Windows环境下利用“共享内存”实现进程间通信的C/C++代码---利用CreateFileMapping和MapViewOfFile...

    进程间的通信方式有很多种, 上次我们说了最傻瓜的"共享外存/文件"的方法. 那么, 在本文中, 我们即将学习"共享内存"的方式实现进程间的通信, 这是IPC最快 ...

  9. java扫描所有用户信息_监听器实现案例----自定义session扫描器和统计在线用户人数及用户信息...

    一.案例一:自定义Session扫描器 1.案例说明 当一个Web应用创建的Session很多时,为了避免Session占用太多的内存,我们可以选择手动将这些内存中的session销毁,那么此时也可以 ...

最新文章

  1. F5负载均衡会话保持技术及原理技术白皮书
  2. isp 图像算法(四)之white balance gain control 就是对 r,gr,gb,b 进行加权
  3. 程序员的数学全三册密码_阿波罗50年前成功登月,少不了这位硬核女程序员
  4. 转://RMAN跨平台可传输表空间和数据库
  5. c#中将集合写入文本_在C#中将记录插入MySQL数据库
  6. Packet Tracer 通过配置静态路由实现不同网段之间的通信(详细步骤)
  7. 基于边缘计算的森林火警监测系统
  8. [C++] - 中的复制初始化(copy initialization)
  9. Python文本处理2个小案例(文本嗅探与关键词占比统计)
  10. 《苹果》何以成禁果?
  11. mysql中怎样查看和删除唯一索引
  12. nginx与IIS服务器搭建集群实现负载均衡(二)
  13. 【今日免费】下载19880元大数据开发从零基础到全链路全套教程(源码+视频)...
  14. redis 配置文件配置
  15. 【MATLAB统计分析与应用100例】案例015:matlab读取Excel数据,进行值聚类分析
  16. 第四轮学科评估计算机专业排名,第四轮学科评估
  17. 【PotPlayer】敲好用的本地视频播放器
  18. 【软件实现实验三:迷宫】
  19. java中Class是什么意思_java中class什么意思?
  20. Access denied for user ''@'localhost' to database 'mysql' 解决办法

热门文章

  1. 点击图片显示大图(有多张图片可以左右滑动)
  2. Could not find qmake configuration file解决
  3. Android开发之自带阴影效果的shape
  4. .net html转为pdf,.NET使用DinkToPdf将HTML转成PDF的示例代码
  5. 易语言 mysql查询 中文乱码_大佬们E语言连接MYSQL输出中文乱码怎么破
  6. tkinter 类继承的三种方式
  7. 编码之道:取个好名字很重要(转)
  8. 你真的会用storyboard开发吗?
  9. URAL 1036 Lucky Tickets
  10. SQLServer游标简单应用(求分组最小值问题)