Is the byte array a result of corresponding serialization for DefaultDeserializer

大家好,我是烤鸭:
    问题记录,上线之后懵逼的问题。只能回滚?每次都是上线来暴击,不然多查查文章也不至于这么被动。

报错日志

org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to deserialize payload. Is the byte array a result of corresponding serialization for DefaultDeserializer?; nested exception is java.io.InvalidClassException: com.xxxx.xxxxc.core.pojo.vo.Resource; local class incompatible: stream classdesc serialVersionUID = 3936163953604439376, local class serialVersionUID = 4124973216730560840at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(JdkSerializationRedisSerializer.java:84)at org.springframework.data.redis.serializer.SerializationUtils.deserializeValues(SerializationUtils.java:54)at org.springframework.data.redis.serializer.SerializationUtils.deserialize(SerializationUtils.java:68)at org.springframework.data.redis.core.AbstractOperations.deserializeValues(AbstractOperations.java:269)at org.springframework.data.redis.core.DefaultValueOperations.multiGet(DefaultValueOperations.java:182)at com.xxxx.xxxxc.core.service.impl.XxxxcServiceImpl.getCXXXX(XxxxcServiceImpl.java:171)at com.xxxx.xxxxc.core.service.impl.XxxxcServiceImpl.getCXXXX1(XxxxcServiceImpl.java:428)at com.xxxx.xxxxc.core.service.impl.XxxxcServiceImpl$$FastClassBySpringCGLIB$$bef756bd.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)at com.xxxx.xxxxc.core.service.impl.XxxxcServiceImpl$$EnhancerBySpringCGLIB$$e5853a01.getCXXXX1(<generated>)at sun.reflect.GeneratedMethodAccessor698.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)at com.xxxx.xxxxc.core.service.impl.XxxxcServiceImpl$$EnhancerBySpringCGLIB$$a8e9635a.getCXXXX1(<generated>)at com.xxxx.xxxxc.controller.CXXXXBaseController.CXXXXFlow$original$tm1stvRt(CXXXXBaseController.java:472)at com.xxxx.xxxxc.controller.CXXXXBaseController.CXXXXFlow$original$tm1stvRt$accessor$l6PMstid(CXXXXBaseController.java)at com.xxxx.xxxxc.controller.CXXXXBaseController$auxiliary$qLsnIVj2.call(Unknown Source)at com.xxxx.xxxxc.controller.CXXXXBaseController.CXXXXFlow(CXXXXBaseController.java)at com.xxxx.xxxxc.controller.CXXXXBaseController$$FastClassBySpringCGLIB$$c8ec8734.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:687)at com.xxxx.xxxxc.controller.CXXXXBaseController$$EnhancerBySpringCGLIB$$ab6f4dc6.CXXXXFlow(<generated>)at sun.reflect.GeneratedMethodAccessor259.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:282)at org.springframework.cloud.context.scope.GenericScope$LockedScopedProxyFactoryBean.invoke(GenericScope.java:499)at

过程回溯

大半夜上线之后,报错日志 哐哐哐 来了,第一时间很慌,怎么办,先回滚吧。回滚之后没问题了,可是线还得上,找找啥原因吧。

某个实体反序列化出问题了,第一时间万能的csdn上一顿搜。

这也太简单了,赶紧改完了上线,灰度一台,又报错了,懵了,坑人啊。

在这里插入图片描述

中间还折腾了一段反序列化忽略字段的弯路,血泪教训。

后来干脆不解决了,知道是缓存的问题,还好过期时间短,等过期完了就好了。

原因是啥

redistemplate 采用hash存储的时候,序列化id也存进去了,导致实体有字段修改之后,序列化id就对不上了,因为不是一个实体了。

解决方案

  • 删redis
  • 去掉多加的字段,还原实体
  • 换key

需求发版,把实体改回去不太现实了,缓存数量太多,临时清也来不及。

如果不是对redis强依赖的场景,改key吧,起码不会报错了。

相关文章

https://www.zhangshilong.cn/work/409210.html

https://www.jianshu.com/p/acbc7e83e038

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412434.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

容器环境 springcloud gateway grafana prometheus采集集成与问题

容器环境 springcloud gateway grafana prometheus采集集成与问题 大家好&#xff0c;我是烤鸭&#xff1a; 记录下网关上容器后&#xff0c;监控升级的过程。 原来的方式 grafana 和 prometheus 网上教程很多&#xff0c;就不细写了。 没上容器之前&#xff0c;可以在…

easyui Combotree 怎么加载数据 支持多选

1、开发环境vs2012 mvc4 c# 2、HTML前端代码 <% Page Language"C#" AutoEventWireup"true" CodeBehind"DataGridTest.aspx.cs" Inherits"MvcAppTest.DataGridTest" %><!DOCTYPE html><html xmlns"http://www.w3.…

idea 错误: 找不到或无法加载主类(汇总贴)

大家好&#xff0c;我是烤鸭&#xff1a; 现在是采坑实录。 idea 错误: 找不到或无法加载主类 xxx.xxx.xxxxx JDK环境&#xff0c;maven项目还是ee还是web项目&#xff0c;是否都正常。 如果是用idea打开的话,在源码目录上点击右键,然后找到Mark directory as->source ro…

爬虫,关于 video 标签 src 带有blob:http的 一些想法

大家好&#xff0c;我是烤鸭&#xff1a; 之前玩爬虫的时候&#xff0c;看到过video标签中src属性引入的blob:http:xxxx&#xff0c;当时没找到解决思路&#xff0c;今天又遇到类似问题&#xff0c;就试着找了一下。 这是有人问过 https://vimeo.com/ 这个网站的视频怎么下载。…

Epson打印机连接wifi

环境 Epson L3153 打印机联通无线光猫 背景 最近家里的联通宽带不太稳定&#xff0c;经常断网。今天打了联通客服电话&#xff0c;师傅上门来&#xff0c;说可能是光猫用的时间太长了&#xff0c;换了一个新的联通光猫&#xff0c;问题解决。 wifi的名称是 CU_Y3ft 和 CU_Y3…

[vue] vue使用v-for遍历对象时,是按什么顺序遍历的?如何保证顺序?

[vue] vue使用v-for遍历对象时&#xff0c;是按什么顺序遍历的&#xff1f;如何保证顺序&#xff1f; image 1、会先判断是否有iterator接口&#xff0c;如果有循环执行next()方法 2、没有iterator的情况下&#xff0c;会调用Object.keys()方法&#xff0c;在不同浏览器中&…

一个下载Google code源码的 绿色、迷你工具 MiniSVN v1.0

一个下载Google code源码的 绿色、迷你工具 MiniSVN v1.0 想下载Google code中的源码 不需要装各种软件&#xff0c;只需要一个小工具即可&#xff01; 如何使用&#xff1f; 访问一个谷歌开源项目网站&#xff0c;比如&#xff1a;https://code.google.com/p/deguang-ticke…

Visual.Assist.X.V10.7.1940的汉化破解补丁

Visual Assist X V10.7.1940的汉化破解补丁&#xff0c;方便各位朋友。 从该版本开始&#xff0c;本博客会跟踪升级&#xff0c;请留意。 关于菜单的汉化请看&#xff1a;http://blog.csdn.net/afu45/article/details/9145293 汉化方法 先安装英文原版软件。下载地址&#…

此时无足够的可用内存,无法满足操作的预期要求,可能是由于虚拟地址随便造成的。请稍候重试。 .

vs提示“此时无足够的可用内存&#xff0c;无法满足操作的预期要求&#xff0c;可能是由于虚拟地址随便造成的。请稍候重试。” 下载下面的补丁就可以了 . 下载地址&#xff1a; http://download.csdn.net/detail/afu45/4053280

Visual.Assist.X 菜单汉化

在Visual Studio 2010下 使用 Visual.Assist.X.V10.7.1940汉化破解补丁 之后&#xff0c; 细心的朋友会发现&#xff1a;Visual Studio的菜单内还是英文的。其实这个也是可以汉化的&#xff0c;方法如下&#xff1a; 在Microsoft Visual Studio的菜单上右键单击 -》 选择最后…

金士顿 8G u盘 红色 量产记录

找了好多教程&#xff0c;只有这个成功了&#xff0c;记录下来 逻辑盘符 : H:\ 此分区容量: 7.1G 设备ID : VID 0951 PID 1642 设备序列号: 001CC0EC348CBBB170000294 设备版本 : PMAP 设备制造商: Kingston 设备型号 : DT 101 G2 当…

(十九)hashlib模块

hashlib模块用于加密相关的操作&#xff0c;3.x里代替了md5模块和sha模块&#xff0c;主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 &#xff0c;MD5 算法 注意&#xff1a;md5和sha256算法都是单向加密&#xff0c;即明文加密为密文后&#xff0c;密文无法再解密回明文 适合…

2019 CCPC-Wannafly Winter Camp Div2 Day1

补题进度 7/11 J 夺宝奇兵 范围较小&#xff0c;直接枚举靠多少票赢即可&#xff0c;不够的票从小到大买 #include<bits/stdc.h> #define ll long long const int maxn 1005; using namespace std; struct node {ll id,val;int pos; }p[maxn],P[maxn]; bool vis[maxn]; …

在Airtest中如何使用无线模式控制手机

在Airtest中如何使用无线模式控制手机 在使用Airtest超快速开发App爬虫文章的最后&#xff0c;我们留了一个尾巴&#xff1a;如何启动Airtest的无线模式&#xff0c;不用USB线就能控制手机&#xff1f; 本文将会讲到具体的做法。做法分为两种&#xff1a;第一种是在Airtest的ID…

tab页

图片&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title></title> <style type"text/css"> /* 上边tab */ html {font-size: 14px }body {margin: 0;padding:…

JMeter 性能测试实例

一、性能测试分类&#xff1a; 1、基准测试 2、并发测试 3、负载测试 4、压力测试 1、基准测试&#xff1a; 也是单用户测试&#xff0c;测试环境确定以后&#xff0c;对业务模型中的重要业务做单独的测试&#xff0c;获取单用户运行时的各项性能指标&#xff0c;为多用户并发测…

Django学习之十一:真正理解Django的路由分发和反解url原理

目录 URL Dispatcher简介模式概念对比URLPattern 与 URLResolver (多态的体现)构建子路由几种方式反解url算法逻辑URL Dispatcher 简介 django的url dispatcher 设计是基于一个url mapper来工作的。 这个url mapper主要用在两个方向&#xff1a; url 匹配到 视图通过提供的标识…

Unable to locate tools.jar

初使用ant的时候&#xff0c;打开cmd&#xff0c;使用ant -version查看ant版本以测试ant是否能正常工作&#xff0c; 我先前是已经将ant的bin目录添加进入环境变量中了&#xff0c;后来运行中报了这么一个错误&#xff1a; 解决办法就是将C:\Program Files (x86)\Java\jdk1.6.…

你所忽略的,覆盖equals时需要注意的事项《effective java》

我们都知道Object的equals的比较其实就是的比较&#xff0c;其实是内存中的存放地址的比较。正常逻辑上&#xff1a;类的每个实例本质上都是唯一的。 在工作中我们实际的业务逻辑往往有可能出现一些相对特殊的需求需要对equals方法进行重写&#xff0c;那么重写equals需要注意哪…

bootstrap 一排5个_BootStrap从基础到项目实战_第1季_03章_02_CSS样式栅格系统实例

目标目标一、理解什么是栅格布局目标二、掌握栅格布局具体应用目标三、掌握BootStrap通用CSS样式(排版、代码、代码、表单、按钮、图片、辅助类、响应式工具)内容一、BootStrap全局CSS之 - 栅格系统实例1.1 栅格系统实例实战前的理论准备通过下面的截图可以比较清楚的来查看Boo…