1. 集群环境下的管理HTTPSSession所遇到的问题

一台服务器对应这个一个session对象,无法在另外一个服务器互通

解决方法:

1. Session 的 Replication(复制)将当前服务器中使用的session全部复制到其他服务器上

缺陷:Session数据冗余 浪费内存资源

2. Session的 stick  session的黏着  session只能单点发布到一个tomcat上

 缺陷:存在单节点故障,容易操作数据丢失

3. Cookie的保存状态

缺陷:也就时Cookie的缺点:存储数据量小,浏览器关闭cookie消失,数据暴露不安全,cookie存储中文数据必须要额外处理

4. 通过redis 或者Memcahe等分布式缓存集中管理Session

具体的思路:

Redis是一个基于内存的key-value的内存数据库

Session存redis中因为要跨网络。session需要实现序列化 key = sessionId value=session

Cookie = jsessionid

Jedis.get(“jsessionid”) ===session

通过Redis 集中管理session的开发步骤:

1、在tomcat的lib目录中导入
tomcat-redis-session-manager-1.2-tomcat-6.jar
jedis-2.0.0.jar
commons-pool-1.6
2、在tomcat的conf目录中修改context.xml配置文件
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="192.168.1.105"
port="6379"
maxInactiveInterval="60"/>

配置

java中的实体类需要实现序列化接口

注意:实现序列化的目的不仅仅是将对象写入到文件中更多的是可以进行对象的网络传输所谓的复制session就是通过一个流

将session传过来session中的对象也要传过来,所以session中存储的对象要实现序列化,而包装类型已经实现了系列化

网络中传输实体的方式

优点:序列化,效率高,序列化后传输的是二进的内容  基于传输层 (内网, tcp ,局域网)

JSON:传输的是字符串                                                  基于应用层 http 互联网

 与mybatis日志系统的集成

redis的分片

1. 为什么要分片?

例如:将1000万的数据量拆分成 10个100万的数据量 使用10个redis服务器进行处理 这个

是分而治之的思想可以提高查询效率。

2. 怎样实现分别片

Redis2.x 通过程序员自己实现  (客户端的分片)

Redis3.x redis支持分片的特性 (又叫服务器分片)

3. 如何知道数据对应哪个redis进行存储

Hash 取模的思想 余数是几就对应哪个redis  有几个redis就对几取模

Redis分片的开发步骤

redis3.x的特性

   特点:1.支持sharding 支持master-slaver

2.支持auto failover(自动故障切换),    如果从节点发现主节点宕机 那么会自动称为主节点

  注意:Redis2 与redis3 只在集群方面有区别其他没有区别

Redis充当web缓存的概念

         

Redis中key的设计

1、查询有几种情况?

1. 通过主键查询   id

2 .通过其他条件查询    sql

 2. key 的设计

 3. redis的副本集

为什么需要副本集:放置单节点故障

 Redis副本集的架构

 

Redis 副本集的开发步骤:

1. 复制redis.conf 的配置文件  一份为主一份为从  修改端口号port
     在从的配置文件中添加

slaveof  <masterip> <masterport>

 

集群环境下的Session管理的更多相关文章

  1. 集群环境下,Session管理的几种手段

    集群环境下,Session管理的几种手段 1.Session复制 缺点:集群服务器间需要大量的通信进行Session复制,占用服务器和网络的大量资源. 由于所有用户的Session信息在每台服务器上都 ...

  2. weblogic 12C集群环境下的session复制

    做过weblogic集群环境的人应该都清楚,要想实现session同步,必须满足两个条件:第一,在weblogic.xml里面增加session同步相关的代码:第二,所有放入session的类都要序列 ...

  3. 集群环境下Shiro Session的管理

    问题引入 紧接上篇连接 在多台tomcat集群中,shiro管理的session需要放在Redis中,我们只需要增加redisSessionDAO的配置就行 <!-- 定义会话管理器的操作 表示 ...

  4. 【原创】Tomcat集群环境下对session进行外部缓存的方法(2)

    Session对象的持久化比较麻烦,虽然有序列化,但是并不确定Session对象中保存的其他信息是否可以序列化,这可能是网上很多解决方案摒弃此种做法的原因,网上的很多做法都是将Session中的att ...

  5. 【原创】Tomcat集群环境下对session进行外部缓存的方法(1)

    BJJC网改版, 计划将应用部署在tomcat集群上,集群的部署方案为Apache+Tomcat6,连接件为mod_jk,其中开启了session复制和粘性session.计划节点数为3个. 到这,或 ...

  6. 集群环境下的Session共享

    一.Cookie机制和Session机制回顾 1)定义:Session成为“会话”,具体是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间.Session ...

  7. redis内存分配管理与集群环境下Session管理

    ##################内存管理############### 1.Redis的内存管理 .与memcache不同,没有实现自己的内存池 .在2..4以前,默认使用标准的内存分配函数(li ...

  8. redis 与java的连接 和集群环境下Session管理

    redis 的安装与设置开机自启(https://www.cnblogs.com/zhulina-917/p/11746993.html)  第一步: a) 搭建环境 引入 jedis jar包 co ...

  9. 分布式集群环境下,如何实现session共享一(应用场景)

    在web应用中,由于http的请求响应式,无状态.要记录用户相关的状态信息,比如电商网站的购物车,比如用户是否登录等,都需要使用session.我们知道session是由servlet容器创建和管理, ...

随机推荐

  1. vivo商城计价中心 - 从容应对复杂场景价格计算

    一.背景 随着vivo商城的业务架构不断升级,整个商城较为复杂多变的营销玩法被拆分到独立的促销系统中. 拆分后的促销系统初期只是负责了营销活动玩法的维护,促销中最为重要的计价业务仍然遗留在商城主站业务 ...

  2. 熟悉而陌生的新朋友——IAsyncDisposable

    本文作者--句幽 在.NET Core 3.0的版本更新中,官方我们带来了一个新的接口 IAsyncDisposable. 小伙伴一看肯定就知道,它和.NET中原有的IDisposable接口肯定有着 ...

  3. WPF学习笔记二 依赖属性实现原理及性能分析

    在这里讨论依赖属性实现原理,目的只是学习WPF是怎么设计依赖属性的,同时更好的使用依赖属性. 首先我们来思考一个简单的问题:我们希望能验证属性的值是否有效,属性变更时进行自己的处理.回顾一下.net的 ...

  4. uwp 之语音识别

    xml code ---------------------------------------------- <Page x:Class="MyApp.MainPage" ...

  5. 多线程Synchronized的两种锁

    Synchronized的作用: 能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果 Synchronized的两个用法: 1)对象锁 包括方法锁(默认锁对象为this当前实例对 ...

  6. 轻量级日志收集方案Loki

    先看看结果有多轻量吧 官方文档:https://grafana.com/docs/loki/latest/ 简介 Grafana Loki 是一个日志聚合工具,它是功能齐全的日志堆栈的核心. Loki ...

  7. Vivado实战—单周期CPU指令分析

    引言   不知道你是否和我有过同样的感受,<计算机组成原理>这门学科学起来如此的艰难:一节课下来,教室黑板上留下了满满的 "足迹",看上去也挺简单的,不就是 0 和 1 ...

  8. Qt之类反射机制

    在java语言中,可以使用getObject(String)函数,从类型直接构建新的对象. 而在C++中是没有这种机制的,Qt虽然提供了元对象机制,但只可以获取对象的类名,不能反向构建. 所以搜索一下 ...

  9. Vue Router路由导航及传参方式

    路由导航及传参方式 一.两种导航方式 ①:声明式导航 <router-link :to="..."> ②:编程式导航 router.push(...) 二.编程式导航参 ...

  10. 作用域 作用域链 闭包 思想 JS/C++比较

    首先,我说的比较是指JS中这种思想/实现方式与C++编译原理中思想/实现方式的比较 参考链接:(比较易懂的介绍,我主要写个人理解) 作用域链: http://www.cnblogs.com/dolph ...