dubbo不同接口配置不同序列化方式

前言

dubbo作为目前比较流行的rpc框架,目前发展比较快,本文介绍下dubbo配置序列化相关的一些方式

dubbo version:3.0.4

配置

全局配置

首先可以配置全局的序列化方式,在application中配置,在传输协议protocol中配置对应的序列化方式,表示采用这种协议的接口统一使用这种序列化方式

protocol支持的一些协议可以看下Protocol SPI接口支持的值,如

在这里插入图片描述

设置默认的协议

dubbo.protocol.name=dubbo
dubbo.protocol.port=-1
dubbo.protocol.serialization=hessian2

接口级别配置

如果你采用的是xml形式来配置dubbo的接口,比如以下,那么就可以直接使用这种方式配置接口级别的序列化方式

<dubbo:service serialization="protobuf" interface="org.apache.dubbo.demo.DemoService"
ref="demoServiceImpl"/>

如果你采用的是注解的方式配置接口,比如以下

    @DubboReference(
            protocol = "dubbo",
            loadbalance = "random")
    private SayHelloService sayHelloService;

点开@DubboReference你会发现它并没有serialization参数,你会觉得@DubboReference和dubbo:service只是配置形式的不一样,为什么注解就不支持了呢

官方的答复是他们的设计,注解支持最小化设计原则,不准备提供serialization参数

官方是推荐这样配置的,在application.properties中配置

dubbo.service.{your-full-package-service-name}.serialization=xxx

比如

dubbo.service.com.example.api.SayHelloService.serialization=hessian2

我测试了一下,确实是可以的

总结

一个项目一般采用protocol来配置全局的序列化方式即可,但是比如别人提供给你一个接口调用,但是他只提供了protobuf的序列化方式,那么你就需要通过设置接口级别的序列化方式来调用这个接口,接口级别的设置优先级高于全局的

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值