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

专题网站建设网站开发周期定义

专题网站建设,网站开发周期定义,自己做网站卖东西,广告设计公司服务承诺一。技术改造背景 由于之前的比较陈旧的技术#xff0c;后面发起了技术改造#xff0c;redis整体改后使用redisson框架。 二。问题 改造完成后#xff0c;使用方反馈 缓存获取异常 异常信息如下 Caused by: java.io.CharConversionException: Unexpected EOF in the mid…一。技术改造背景 由于之前的比较陈旧的技术后面发起了技术改造redis整体改后使用redisson框架。 二。问题 改造完成后使用方反馈 缓存获取异常 异常信息如下 Caused by: java.io.CharConversionException: Unexpected EOF in the middle of a 4-byte UTF-32 char: got 1, needed 4, at char #1, byte #5) at com.fasterxml.jackson.core.io.UTF32Reader.reportUnexpectedEOF(UTF32Reader.java:187) at com.fasterxml.jackson.core.io.UTF32Reader.loadMore(UTF32Reader.java:248) at com.fasterxml.jackson.core.io.UTF32Reader.read(UTF32Reader.java:126) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._loadMore(ReaderBasedJsonParser.java:276) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._matchToken2(ReaderBasedJsonParser.java:2727) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._matchToken(ReaderBasedJsonParser.java:2707) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1986) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:802) at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4761) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4667) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3666) at org.redisson.codec.JsonJacksonCodec$2.decode(JsonJacksonCodec.java:99) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:393) at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:205) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:519) at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366)三。问题定位 从日志上来看 解密失败了回头看未改造的redis 存储的序列化方式是 hessian 而改造后的 redis存储的序列化方式是JsonJacksonCodec 导致反序列化报错 四。问题解决 具体问题定位到了后 解决办法就已经有了。 修改redisson的序列化方式 保持和旧的序列化方式相同做缓存迁移或者缓存全量失效理论来讲不太现实 那这个很明显选择修改redisson的序列化方式 保持和旧的序列化方式相同。 redison目前支持的 序列化方式 Codec class nameDescriptionorg.redisson.codec.Kryo5CodecKryo 5 binary codec (Android compatible) Default codecorg.redisson.codec.KryoCodecKryo 4 binary codecorg.redisson.codec.JsonJacksonCodecJackson JSON codec. Stores type information in class field (Android compatible)org.redisson.codec.TypedJsonJacksonCodecJackson JSON codec which doesn’t store type id (class field) during encoding and doesn’t require it for decodingorg.redisson.codec.AvroJacksonCodecAvro binary json codecorg.redisson.codec.SmileJacksonCodecSmile binary json codecorg.redisson.codec.CborJacksonCodecCBOR binary json codecorg.redisson.codec.MsgPackJacksonCodecMsgPack binary json codecorg.redisson.codec.IonJacksonCodecAmazon Ion codecorg.redisson.codec.SerializationCodecJDK Serialization binary codec (Android compatible)org.redisson.codec.LZ4CodecLZ4 compression codec. Uses Kryo5Codec for serialization by defaultorg.redisson.codec.SnappyCodecV2Snappy compression codec based on snappy-java project. Uses Kryo5Codec for serialization by defaultorg.redisson.codec.MarshallingCodecJBoss Marshalling binary codec Deprecated!org.redisson.client.codec.StringCodecString codecorg.redisson.client.codec.LongCodecLong codecorg.redisson.client.codec.ByteArrayCodecByte array codecorg.redisson.codec.CompositeCodecAllows to mix different codecs as one 很意外并没有 我们需要的hessian的序列化 只能手写! redisson 默认的序列化方式为Kryo5Codec 首先引入依赖 dependencygroupIdcom.caucho/groupIdartifactIdhessian/artifactIdversion4.0.66/version /dependency其次继承 BaseCodec 实现我们的 HessianCoder 即可 完整的实现如下 import com.caucho.hessian.io.HessianInput; import com.caucho.hessian.io.HessianOutput; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufAllocator; import io.netty.buffer.ByteBufInputStream; import io.netty.buffer.ByteBufOutputStream; import lombok.extern.slf4j.Slf4j; import org.redisson.client.codec.BaseCodec; import org.redisson.client.handler.State; import org.redisson.client.protocol.Decoder; import org.redisson.client.protocol.Encoder;import java.io.IOException;/*** 自定义实现 Hessian 序列化 兼容原有的序列化方式** author leon* date 2023-08-10 15:14:03*/ Slf4j public class HessianCoder extends BaseCodec {private final Encoder encoder new Encoder() {Overridepublic ByteBuf encode(Object in) throws IOException {try (ByteBufOutputStream os new ByteBufOutputStream(ByteBufAllocator.DEFAULT.buffer())) {HessianOutput ho new HessianOutput(os);ho.writeObject(in);return os.buffer();} catch (Exception e) {log.error(Hessian序列化异常: {}, e.getMessage(), e);throw new IOException(e);}}};private final DecoderObject decoder new DecoderObject() {Overridepublic Object decode(ByteBuf buf, State state) throws IOException {try (ByteBufInputStream inputStream new ByteBufInputStream(buf)) {HessianInput hi new HessianInput(inputStream);return hi.readObject();} catch (Exception e) {log.error(Hessian反序列化异常: {}, e.getMessage(), e);throw new IOException(e);}}};Overridepublic DecoderObject getValueDecoder() {return decoder;}Overridepublic Encoder getValueEncoder() {return encoder;} }最后修改我们的redisson配置 将序列化方式替换为HessianCoder 即可 在进行测试获取缓存 也没报错了。 参考官方文档https://github.com/redisson/redisson/wiki/4.-data-serialization
http://www.zqtcl.cn/news/473588/

相关文章:

  • seo网站建设方案建个企业网站需要多少钱
  • 搭建网站的软件网页动态设计
  • 好的界面建筑网站甘孜网站建设
  • 电子商务网站创建过程网站排名提升软件
  • 青岛企业如何建网站购买网站建站
  • 广东自考网站建设管理网站做ddns解析
  • 网站建设分类如何重启网站服务器
  • 新蒲建设集团网站怎么把源码做网站
  • 嘉兴建设局网站在线制作头像框
  • 苏州行业网站建设服务网页制作需要学什么技术
  • 二 网站建设的重要性东莞seo建站优化收费
  • 农业公司注册流程及费用快排seo排名软件
  • 响应式中文网站欣赏机wordpress
  • 如何建网站并做推广亚马逊网站怎么做推广
  • 做好网站建设总结免费开发app平台下载
  • 哈尔滨建站免费模板app网站开发要多少钱
  • 大连网站设计九首选仟亿科技怎么做百度网站会显示图片在旁边
  • 南京营销网站建设wordpress图片购买下载
  • 装修平台网站制作word模板
  • 网站建设捌金手指花总十软文写作技巧
  • 做网站优化有用吗网站开发包括什么软件
  • 在线音乐网站开发现状有什么网站接效果图做的
  • 网站开发自学难吗上海网站建设百度推广公司哪家好
  • 建设部网站官网四库一平台房地产网站大全
  • 做外贸如何建立网站微信信息流广告投放
  • 上海工程建设招投标网站开发购物网站描述
  • 网站系统维护一般多久电商关键字优化
  • 孝感市建设局网站宁波seo网络推广价格
  • 百度商桥网站网络编程技术试题
  • 设计素材网站排名网站建设网站软件有哪些内容