首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Dubbo应用开发之Kryo序列化的使用

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

原创
作者头像
全干程序员demo
发布2025-10-27 12:44:17
发布2025-10-27 12:44:17
1360
举报
文章被收录于专栏:Dubbo应用开发Dubbo应用开发

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

下面会带来常见的几种序列化技术在dubbo应用中的相关操作以及配置

XML方式

dubbo-prod

引入依赖

pom.xml

代码语言:xml
复制
    <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>dubbo-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        
        <dependency>
            <groupId>org.apache.dubbo.extensions</groupId>
            <artifactId>dubbo-serialization-kryo</artifactId>
            <version>1.0.1</version>
        </dependency>
    </dependencies>

新增配置

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

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

测试启动

启动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=kryo&release=3.2.0&serialization=kryo&side=provider&timestamp=1754554470068, dubbo version: 3.2.0, current host: 222.20.83.141

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

Springboot方式

dubbo-boot-prod

一样也是先引入依赖

pom.xml

代码语言:xml
复制
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>3.2.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.dubbo.extensions</groupId>
        <artifactId>dubbo-serialization-kryo</artifactId>
        <version>1.0.1</version>
    </dependency>
    <dependency>
        <groupId>org.example</groupId>
        <artifactId>dubbo-api</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

修改springboot配置文件

application.yml

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

Consumer端调用

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

代码语言:java
复制
@DubboReference(url = "dubbo://192.168.50.62:20880/com.suns.service.UserService?serialization=kryo")

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Dubbo应用开发之Kryo序列化的使用
    • XML方式
      • 引入依赖
      • 新增配置
      • Consumer端调用
      • 测试启动
    • Springboot方式
      • 一样也是先引入依赖
      • 修改springboot配置文件
      • Consumer端调用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档