(十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
程序员文章站
2022-04-20 23:03:11
...
Nepxion-Thunder(QQ 群 471164539)发布在https://github.com/Nepxion/
框架支持两种方式的序列化,Java对象和字节数组的序列化和反序列化,Java对象和Json字符串的转换
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. 性能比较和总结
上一篇: hessian的java示例
推荐阅读
-
(九) Nepxion-Thunder分布式RPC集成框架 - 治理中心
-
(十) Nepxion-Thunder分布式RPC集成框架 - 监控中心
-
(十三) Nepxion-Thunder分布式RPC集成框架 - 事件发布
-
(六) Nepxion-Thunder分布式RPC集成框架 - 点对点模型
-
(八) Nepxion-Thunder分布式RPC集成框架 - 注册中心
-
(七) Nepxion-Thunder分布式RPC集成框架 - 消息队列模型
-
(十一) Nepxion-Thunder分布式RPC集成框架 - 负载均衡和同步中心
-
(十二) Nepxion-Thunder分布式RPC集成框架 - 配置调优
-
(十五) Nepxion-Thunder分布式RPC集成框架 - 序列化
-
(十四) Nepxion-Thunder分布式RPC集成框架 - 调用链