当前位置: 首页 > news >正文

【032】Dubbo3从0到1系列之triple协议场景

文章目录

  • 六、triple协议场景
    • 6.1 添加依赖
    • 6.2 配置启用
    • 6.3 protobuf 服务定义示例
    • 6.4 Java接口模式开发triple

六、triple协议场景

  • protobuf
  • protobuf-json

Protobuf(Protocol Buffers) 是由 Google 开发的一种轻量级、高效的数据交换格式,它被用于结构化数据的序列化、反序列化和传输。 相比于XML 和JSON 等文本格式,Protobuf 具有更小的数据体积、更快的解析速度和更强的可扩展性。

  • 在使用 Protobuf(IDL) 开发 triple 通信服务 的时候,dubbo server 将自动启用 protobuf、protobuf-json 序列化模式支持

6.1 添加依赖

使用 triple + protobuf 模式,必须添加以下依赖:

<dependencies><dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId><version>3.19.6</version></dependency><!-- 提供 protobuf-json 格式请求支持 -->><dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java-util</artifactId><version>3.19.6</version></dependency>
</dependencies>

6.2 配置启用

只要是基于 Protobuf(IDL) 开发模式进行 triple 协议通信 ,就会使用 protobuf 序列化,只要定义 protobuf 文件并启用 triple 协议即可。

当使用 cURL 访问 triple 服务时,是会启用 protobuf-json 序列化模式

curl \--header "Content-Type: application/json" \--data '{"name":"Dubbo"}' \http://localhost:50052/org.apache.dubbo.samples.tri.unary.Greeter/greet/

6.3 protobuf 服务定义示例

syntax = "proto3";
option java_multiple_files = true;
package org.apache.dubbo.samples.tri.unary;message GreeterRequest {string name = 1;
}
message GreeterReply {string message = 1;
}service Greeter{rpc greet(GreeterRequest) returns (GreeterReply);
}

协议配置:

# application.yml (Spring Boot)
dubbo:protocol:name: tri
# dubbo.properties
dubbo.protocol.name=tri
<dubbo:protocol name="tri" />

6.4 Java接口模式开发triple

Dubbo 实现的 triple 协议易用性更好(不绑定 Protobuf),开发者可以继续使用 Java 接口 直接定义服务。对于期望平滑升级、没有多语言业务或者不熟悉 Protobuf 的用户而言,Java 接口方式是最简单的使用 triple 的方式。

以下介绍这种协议模式下的底层序列化细节:框架会用一个内置的 protobuf 对象将 request 和 response 进行包装(wrapper),也就是对象会被序列化两次,第一次是使用如 serialization=hessian 指定的方式进行序列化,第二次是用 protobuf wrapper 对第一步中序列化后的 byte[] 进行包装后传输

✅ 1. 添加依赖

使用 triple 协议,必须先添加如下依赖:

<dependencies><dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId><version>3.19.6</version></dependency><!-- 提供 protobuf-json 格式请求支持 -->><dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java-util</artifactId><version>3.19.6</version></dependency>
</dependencies>

✅ 2. 配置使用

只要是基于 Java 接口方式模式使用 triple 协议 ,就会使用 protobuf wrapper 序列化,只要定义 Java 接口并启用 triple 协议即可:

通过 Java 接口定义 Dubbo 服务:

public interface GreetingsService {String sayHi(String name);
}

配置使用 triple 协议(如果要设置底层使用的序列化协议,需要继续设置 serialization,如 hessian、msgpack 等):

# application.yml (Spring Boot)
dubbo:protocol:name: triserialization: hessian
# dubbo.properties
dubbo.protocol.name=tri
dubbo.protocol.serialization=hessian
<dubbo:protocol name="tri" serialization="hessian"/>
http://www.dtcms.com/a/603127.html

相关文章:

  • 全媒体网站的建设网站建设怎么样找客户快
  • 成都网站建设推广港哥公司网站开发建设什么会计科目
  • 企业品牌推广网站精品课程网站开发环境
  • CSP-S2024题解游记
  • 深度学习:数据增强(Data Augmentation)
  • 隆尧建设局网站深圳龙岗区地图
  • 【3DV 进阶-8】Hunyuan3D2.1 数据预处理详解- 水密化和采样 watertight and sample
  • Kubernetes入门到精通-k8s 机器节点上怎么测试POD SVC之间网络
  • 医药医疗行业网站建设企业建站方案
  • 荥阳网站制作大地资源影视免费观看
  • kubernetes 安装配置 需要有两个地方配置国内镜像地址
  • 网站查询进入做网站维护累吗
  • HTTP概述 01
  • 天水建网站wordpress熊掌号提交
  • Lua环境的配置 和 Lua的一些简单语法逻辑
  • 怎么把自己的网站放到百度上智通人才招聘网最新招聘
  • 网站建设 专家购物网站用那个软件做
  • 福安市教育局建设网站免费ppt模板下载无水印
  • JavaScript 35个字符串方法完整参数返回值表
  • Vue 3 :生命周期钩子详解
  • 什么值得买网站模版网络设计主要是干什么的
  • Python中的内存管理:垃圾回收机制是如何工作的?
  • 贵州百度seo整站优化快速搭建展示型网站
  • wordpress 搜索引擎收录百度官方优化指南
  • 网站建设与管理期末考试题云南建设厅建设网站首页
  • 百度seo公司整站优化pageadmin和wordpress
  • 【FPGA+DSP系列】——proteus仿真DSP控制单相整流电路,4路PWM波控制晶闸管实验
  • 网站静态路径wordpress页面更新失败
  • Python __name__ 与 __main__
  • 红黑树的那些事