Dubbo3技术一套通之Kryo序列化

前言

前面文章讲解了Dubbo的网络通信的中的通信协议、通信方式与序列化的相关内容,半篇文章将实战带你学习Kryo序列化方式的使用

开发使用

Dubbo在序列化方面提供了良好的开发支持,默认情况下它使用Hessian2作为官方的序列化方案。如果要将它替换为Kryo序列化方案,可以按照以下步骤进行开发

导入依赖

官方默认支持Hessian2序列化,如果要使用Kryo序列化,则需要引入Dubbo提供的拓展依赖-dubbo-serialization-kryo。通过观察该依赖的组织ID可以了解Dubbo的拓展依赖。如需使用其他未支持的序列化方式,可自定义修改这个模块中的代码。

xml 复制代码
<dependency>
    <groupId>org.apache.dubbo.extensions</groupId>
    <artifactId>dubbo-serialization-kryo</artifactId>
    <version>1.0.1</version>
</dependency>

Provider设置

在引入kryo依赖后,我们需要在provider端进行设置即可,如下针对Spring配置文件与SpringBoot分别配置

Spring配置文件

下面是使用Spring配置文件对Dubbo通信部分的配置示例。在这个配置中,我们采用了dubbo协议,服务端端口从20880开始递增分配,这有助于避免端口冲突问题。此外,我们还选择了Kryo作为序列化方式,以提高数据传输效率

xml 复制代码
<dubbo:protocol name="dubbo" port="-1" serialization="kryo"/>

SpringBoot

如下是SpringBoot对于网络通信、序列化这块的配置

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

Consumer设置

上面我们已经对provider端配置完成并且顺利启动了服务,接下来我们将在consumer端进行配置发起rpc调用。同样对Spring配置文件和SpringBoot进行配置

Spring配置文件

xml 复制代码
<dubbo:reference interface="com.aomsir.service.UserService" id="userService" url="dubbo://192.168.212.1:20880/com.aomsir.service.UserService?serialization=kryo" />

SpringBoot

将调用地址以注解参数的方式进行配置

java 复制代码
@DubboReference(url = "dubbo://192.168.212.1:20880/com.aomsir.service.UserService?serialization=kryo")
private UserService userService;

总结

上述便是将Dubbo 3程序替换Kryo序列化的详细使用方法,替换过程相对简单,只需要导入必要的依赖并稍作配置调整即可完成。然而,我们也需要从更深层次的角度来理解这一过程,例如Dubbo为序列化所保留的扩展槽位以及其可扩展性

参考文献

相关推荐
ACP广源盛139246256731 小时前
国产算力互联IX8024@ACP#Kimi K3 开源后的端侧部署硬件架构分析
大数据·人工智能·分布式·单片机·嵌入式硬件
花生了什么事o2 小时前
分布式 ID 生成方案:从数据库自增到雪花算法
数据库·分布式·算法
爱吃提升17 小时前
python 分布式爬虫、爬虫合规与综合实战项目
分布式·爬虫·python
ZENERGY-众壹20 小时前
跨品牌逆变器升级:华为锦浪德业 API 对接的 7 个坑
分布式·华为·数据归一化·光伏运维·逆变器api
薛定谔的猫19821 天前
LLaMA-Factory +DeepSpeed 分布式多卡训练实战全解
分布式·deepspeed·zero·多卡训练·多卡分布式训练
稚南城才子,乌衣巷风流1 天前
RabbitMQ 消息队列:从入门到实战
分布式·rabbitmq
Database_Cool_2 天前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
肥胖小羊2 天前
解决企业微信 AccessToken 刷新并发冲突的分布式锁机制实践
分布式·企业微信
wuqingshun3141592 天前
Dubbo 和 Spring Cloud Gateway 有什么区别?
dubbo
风中凌乱3 天前
kafka新版本集群的安装与部署
分布式·kafka