cdh的集成phoenix安装_springsession集成redis问题

本文介绍了在集成Spring-session与Redis时遇到的两个问题:Redis版本不兼容和生产环境禁用CONFIG命令。解决方案包括升级Redis到支持版本及禁用配置更新。此外,还探讨了问题的理论依据和最佳实践,帮助读者深入理解开源软件设计并提升开发技能。
摘要由CSDN通过智能技术生成

spring-session集成redis问题

点击上方“技术支持联盟”,选择“置顶公众号”

第一时间了解程序员大小事儿

作者: 刘同学,爱折腾,钻牛角尖,spring的脑残粉,未参与过开源项目的开源热衷者。

简介:最近Spring-session集成redis遇到两个问题,在这里记录一下。

759c72691e49beaaafdbbbb0ca677283.png

01

问题及处理

redis版本问题

异常:ERR Unsupported CONFIG parameter: notify-keyspace-events

原因:Spring-session 集成redis要求redis

解决方案:升级redis版本

生产环境禁用redis的CONFIG命令问题

异常:ERR unknown command 'CONFIG'

原因:生产环境的redis,出于安全考虑,会禁用CONFIG命令,Spring-session 集成redis使用的@EnableRedisHttpSession注解会默认通过CONFIG命令配置notify-keyspace-events,由于CONFIG命令被禁用,导致报错。

解决方案:分两步配置

1.代码中禁用config命令

@Bean

public static ConfigureRedisAction configureRedisAction() {

    return ConfigureRedisAction.NO_OP;

}

2.redis配置notify-keyspace-events

由于生产环境config命令被禁用,可以通过运维人员修改redis的配置文件重启解决

notify-keyspace-events

以上,问题解决

02

理论依据

1.redis版本问题

Redis版本问题在官方文档的minimum-requirements有说明

见文档:

https://docs.spring.io/spring-session/docs/current/reference/html5/#minimum-requirements

2.生产环境禁用redis的CONFIG命令问题

关于CONFIG命令的问题是源于一个BUG,见issues:

https://github.com/spring-projects/spring-session/issues/124

大概意思是@EnableRedisHttpSession集成redis,会默认通过redis的config命令开启redis的notify-keyspace-events事件通知。由于config命令被禁用,操作执行失败报错。

该BUG在1.0.1版本被修复,值得注意的是作者在修复BUG的时候,同时提到了默认开启notify-keyspace-events事件通知的原因:

66b09976446c9e134464cf28f42fcb1f.png

原文连接:

https://github.com/spring-projects/spring-session/issues/124#issuecomment-71490616

文中提到两点:

1.测试环境无需额外操作即可正常运行(对开发友好)

2.由于使用websocket的应用需要通过SessionDestroyedEvent?事件通知来关闭已开启的连接,以生产环境需要手动关闭CONFIG命令配置的方式提示用户需要开启notify-keyspace-events事件通知。(基于快速失败原则,尽早发现问题)。

文中还提到了修复方案:

6b4056bec552b40ddc7c612c045767ef.png

  • RedisHttpSessionConfiguration默认情况下应仅在启用springwebsocket支持时更新Redis配置。

  • RedisHttpSessionConfiguration应允许禁用更新Redis配置。

  • RedisHttpSessionConfiguration默认情况下只应在启用springwebsocket支持的情况下尝试订阅键空间通知。这将有助于提高仅使用springsessionforhttpsession的应用程序的性能,而HttpSession通常不需要接收sessiondestoryedevent

  • 如果应用程序应该订阅密钥空间通知,RedisHttpSessionConfiguration应该允许显式配置

官方文档对禁用CONFIG命令做了说明:

https://docs.spring.io/spring-session/docs/current/reference/html5/#api-redisindexedsessionrepository-sessiondestroyedevent(2.2.x及以上版本)

(2.1.x及更早期版本见:#api-redisoperationssessionrepository-sessiondestroyedevent

如:https://docs.spring.io/spring-session/docs/2.1.x/reference/html5/#api-redisoperationssessionrepository-sessiondestroyedevent)

03

收获

其实上面的两个问题有很多解决方案,但是通过追根溯源,查阅官方文档,能更好的理解作者的设计初衷,理解每种方案的影响。通过对不同方案的对比,选择最优的、最适合的方案,做到知其然、知其所以然,不断加深对开源软件理解,并将了解的新内容应用到日常开发工作中,不断提升自己软件设计水平,开发出高质量、高标准的软件产品。

历史文章

解决方案:

通过分析Nginx服务器日志统计用户流量并预警

加密与认证技术

【双十一钜惠:科技人的专属保障】移动端交互速度保证  ——影像上传优化

【双十一钜惠:科技人的专属保障】移动端认证保障  ——非对称加密及jwt应用

系统安全建设小经验

公共组件-需求自动录入TAPD

Python初体验

HTML5实现自定义键盘及使用

Sentinel限流

基于公有云实时音视频通道的构建音视频组件方法与实战经验

分布式定时任务调度探讨

阿里云OSS JavaAPI分享

Jmeter压测的使用

API接口安全优化浅谈

基于idea将传统应用maven化改造实践

安全漏洞预扫小工具

Nacos作为注册中心,配置中心部署方案

Rancher+K8S简化学习环境搭建方案

Excel大数据量解析优化方案

Sharding-JDBC个性化分表方案

基于JWT的接口权限认证

Spring Cloud Gateway实现限流

公网发布的通用技术解决方案

Nginx结合Lua实现限流

Mysql数据同步Canal方案

Weblogic部署基于Spring Cloud项目应用实例

智能验证码解析java语言实现

数据库的演绎与变迁-下架最后一台小型机

关于struts架构通过引入spring包实现dubbo调用测试的未来式

架构系列:

双十一钜惠:科技人的专属保障】如何保障移动端活动的稳定运转?——移动端基础平台建设的经验分享

【双十一钜惠:一个有温度的技术公众号】科技人需要什么样的保障

架构师入门系列:架构三板斧“缓存,消息,异步”

监控&运维

redis监控工具-redislive

微服务链路追踪工具 Apache  SkyWalking部署与实践

快速发现生产环境SQL问题

Grafana-业务数据监控实践

自动化运维能力提升

服务器监控及问题定位排除

基于Spring Boot Admin告警之应用状态告警

Ansible在自动化运维中的使用

自助迁发分支工具

大数据

基于CDH集群的大数据项目的优化总结

Oracle实时同步大数据平台解决方案

实时流关联维表解决方案

中间件

浅谈Elasticsearch的资源分配

Apache Kafka使用规范Elasticsearch安装及使用

SSDB介绍及使用

RabbitMq使用简单介绍

Spring Cloud常用组件介绍

前端

ESLint + Prettier 规范前端代码

Vue.js对WinXP系统对兼容性

关于采集操作系统、浏览器版本的设计方案及一些浏览器兼容性问题处理

安卓动态加载SO文件

对浏览器的理解及兼容移动端H5本地化方案调研和实践

自适应网页设计

短信/浏览器唤起APP方案

基础知识

Sonar简介

JVM基础系列1:JVM内存模型介绍

JVM基础系列2:JVM配置参数和Java内存模型

JVM基础系列3  虚拟机字节码执行引擎

开发规范

Java异常处理规范

战略方向

金融保险系统开源浪潮下机遇与挑战

项目实战

运维工作要学会“偷懒”

“用户思维+中台架构”快速搭建金融宝app

多维分保的应用探索

用文化指引自身的成长之路  -2020年技术成长心得分享

从工作中探寻自身的成长之路

从《平凡的荣耀》到记一次兼容性改造优化后的技术感悟

客户为中心,统筹协调,把控风险

让我们的管理看的见

32cce81ba1924b95de838bbd94de5f83.pngEND

97fa99f88aad056e900e6d1c7d2b0fef.gif

请识别下方二维码,关注 技术支持联盟

8676bb7684bf50abe21534b5b88ac323.png

热衷于开源项目,请扫码进群

8ee748e54eb048cc86ec11d3be7e445d.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值