Dubbo应用开发之FastJson序列化的使用

62 阅读1分钟

Dubbo应用开发之FastJson序列化的使用

FastJson序列化的使用其实和Kryo没什么区别只需要修改引入依赖和配置的序列化名称即可,操作流程也是和Kryo一摸一样的

简介

image.png

Fastjson2序列化仅Dubbo>3.1.0版本⽀持,在Dubbo>3.2.0中将替代Hessain作为默认序列化⽅式.意味着只支持Dubbo3.1.X版本的使用,因为3.2.0版本以后已经全部沿用Fastjson2了

XML方式

dubbo-prod

引入依赖

pom.xml

<dependency>
 <groupId>com.alibaba.fastjson2</groupId>
 <artifactId>fastjson2</artifactId>
 <version>2.0.23</version>
</dependency>

新增配置

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
​
    <dubbo:application name="dubbo-prod"/>
​
    <dubbo:protocol name="dubbo" port="28080" serialization="fastjson2"/>
​
    <bean id="UserService" class="org.example.service.UserServiceImpl"/>
​
    <dubbo:service interface="org.example.service.UserService" ref="UserService"/>
​
</beans>

Consumer端调用

<dubbo:reference id="userService" interface="com.suns.service.UserService"
 url="dubbo://192.168.50.62:20880/com.suns.service.UserService?serialization=fastjson2"/>
//后续如果引⼊注册中⼼ url就可以不写。

测试启动

启动dubbo-prod

可以看到关于暴露一条UserService服务的日志

16:14:32.718 [main] INFO org.apache.dubbo.config.ServiceConfig -  [DUBBO] Export dubbo service org.example.service.UserService to url dubbo://222.20.83.141:28080/org.example.service.UserService?anyhost=true&application=dubbo-prod&background=false&bind.ip=222.20.83.141&bind.port=28080&deprecated=false&dubbo=2.0.2&dynamic=true&executor-management-mode=isolation&file-cache=true&generic=false&interface=org.example.service.UserService&ipv6=2001:250:4000:4115:d0:30e9:8b30:67ac&methods=login&pid=21636&prefer.serialization=fastjson2&release=3.2.0&serialization=kryo&side=provider&timestamp=1754554470068, dubbo version: 3.2.0, current host: 222.20.83.141

可以发现这条prefer.serialization=fastjson2,说明序列化方式已经修改成fastjson2了

Springboot方式

dubbo-boot-prod

一样也是先引入依赖

修改springboot配置文件

application.yml

dubbo:
  protocol:
    name: dubbo
    port: -1
    serialization: fastjson2

Consumer端调用

直接在注解上添加参数即可

@DubboReference(url = "dubbo://192.168.50.62:20880/com.suns.service.UserService?serialization=fastjson2")