欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(十五) Nepxion-Thunder分布式RPC集成框架 - 序列化

程序员文章站 2022-04-20 23:03:11
...

Nepxion-Thunder(QQ 群 471164539)发布在https://github.com/Nepxion/

 

框架支持两种方式的序列化,Java对象和字节数组的序列化和反序列化,Java对象和Json字符串的转换

 
(十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
            
    
    博客分类: 开源框架平台选型 NettyHessianKafkaRedisDocker 
1)binary - Java实体类和字节数组的序列化/反序列化
2)
compression - 对binary模块运行结果的压缩/解压
3)
json - Java实体类和Json字符串的转换

调用序列化的方式很简单,调用SerializerExecutor.java,主要是下面6个方法

public static byte[] serialize(Serializable object);

public static <T> T deserialize(byte[] bytes);
    
public static byte[] serialize(Serializable object, boolean compress);

public static <T> T deserialize(byte[] bytes, boolean compress);

public static String toJson(Object object);

public static <T> T fromJson(String json, Class<T> clazz);

......   
 用户在选择序列化方式和协议的时候,是否压缩等问题的处理,必须要保证服务端和调用端必须使用方式一致

 

1. Java对象和字节数组的序列化和反序列化

目前支持三种方式
  • FST
  • Kryo
  • JDK原生序列化

2. Java对象和Json字符串的转换

目前支持三种方式
  • Jackson Json
  • Alibaba FastJson
  • FST Json

3. Java对象和字节数组序列化中的压缩

目前支持一种方式
  • Facebook的QuickLz
    启用压缩是CPU性能换网络IO开销,任何压缩算法都会耗费一点点的CPU,所以,经验上来分析,当字节数组的大小达到K级别的时候,可以考虑启用压缩,最大压缩比可以达到70-80%

4. 性能比较和总结


(十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
            
    
    博客分类: 开源框架平台选型 NettyHessianKafkaRedisDocker 
 
(十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
            
    
    博客分类: 开源框架平台选型 NettyHessianKafkaRedisDocker 

  • (十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
            
    
    博客分类: 开源框架平台选型 NettyHessianKafkaRedisDocker 
  • 大小: 5.6 KB
  • (十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
            
    
    博客分类: 开源框架平台选型 NettyHessianKafkaRedisDocker 
  • 大小: 357.8 KB
  • (十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
            
    
    博客分类: 开源框架平台选型 NettyHessianKafkaRedisDocker 
  • 大小: 127.7 KB