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

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

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

XML方式

dubbo-prod

引入依赖

pom.xml

由于我们使用的是Dubbo3.2.0和fst的2.7.23版本会引起jar包冲突所以我们将dubbo-common进行排除,这里解释一下:因为整个项目引入了Dubbo3.2.0里面就包含了dubbo-common3.2.0,然后fst的依赖中也依赖了dubbo-common但是它的版本是2.7.23,同一个项目中引入了俩个一样的依赖并且版本不一样,这就是我们说的jar包冲突

xml 复制代码
<dependency>
 <groupId>org.apache.dubbo</groupId>
 <artifactId>dubbo-serialization-fst</artifactId>
 <version>2.7.23</version>
 <exclusions>
 <exclusion>
 <artifactId>dubbo-common</artifactId>
 <groupId>org.apache.dubbo</groupId>
 </exclusion>
 </exclusions>
</dependency>

新增配置

applicationContext.xml

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="fst"/>

    <bean id="UserService" class="org.example.service.UserServiceImpl"/>

    <dubbo:service interface="org.example.service.UserService" ref="UserService"/>

</beans>

Consumer端调用

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

测试启动

启动dubbo-prod

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

xml 复制代码
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=fst&release=3.2.0&serialization=kryo&side=provider&timestamp=1754554470068, dubbo version: 3.2.0, current host: 222.20.83.141

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

Springboot方式

dubbo-boot-prod

一样也是先引入依赖

修改springboot配置文件

application.yml

yml 复制代码
dubbo:
  protocol:
    name: dubbo
    port: -1
    serialization: fst

Consumer端调用

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

java 复制代码
@DubboReference(url = "dubbo://192.168.50.62:20880/com.suns.service.UserService?serialization=fst")
相关推荐
神奇的程序员3 小时前
从已损坏的备份中拯救数据
运维·后端·前端工程化
oden4 小时前
AI服务商切换太麻烦?一个AI Gateway搞定监控、缓存和故障转移(成本降40%)
后端·openai·api
李慕婉学姐4 小时前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
m0_740043735 小时前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
招风的黑耳6 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端
Miss_Chenzr6 小时前
Springboot优卖电商系统s7zmj(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
期待のcode6 小时前
Springboot核心构建插件
java·spring boot·后端
2501_921649496 小时前
如何获取美股实时行情:Python 量化交易指南
开发语言·后端·python·websocket·金融
serendipity_hky7 小时前
【SpringCloud | 第5篇】Seata分布式事务
分布式·后端·spring·spring cloud·seata·openfeign
五阿哥永琪7 小时前
Spring Boot 中自定义线程池的正确使用姿势:定义、注入与最佳实践
spring boot·后端·python