dubbo-go 3.0 新特性

2022-04-14 11:12 更新

1. Triple 协议 

1.1 概述

  • 通信层面Triple 协议,也称为Dubbo3协议,是基于HTTP2 + gRPC协议,增加特定字段和逻辑的扩展协议,保证了和原生gRPC协议互通。在此基础之上,Triple 新协议将更原生地支持 Dubbo 服务治理能力。并支持流式RPC调用。简单来说,可以理解为 Triple = gRPC + Dubbo
  • 序列化Triple 协议使用高效的PB序列化方式,并在此基础之上增加序列化协议的可扩展支持。
  • 用户开发习惯:Triple 服务在开发前需要预定义.proto文件,对于习惯在编码前先定义IDL的Go语言开发者带来便捷。不同于符合java编程习惯的,定义JavaClassName用于描述接口的 Dubbo-go 1.x版本。
  • 跨语言互通性:可与 Dubbo-Java 实现跨语言互通。

2. 应用级服务发现

2.1 简介

在服务注册阶段,服务端实例将应用级别的注册信息,主要包含从应用名到实例IP的映射注册到注册中心。在服务发现阶段,客户端实例,通过注册中心获取到需要请求的服务实例IP。进入服务自省阶段,服务自省过程为通过应用信息获取接口信息的过程。如上图,包含两种模式:

  1. remote模式:通过元数据中心(例如 zk )获取应用到接口元数据的映射
  2. local模式:直接通过服务端获取应用到接口元数据的映射(通过 Dubbo 协议针对 Metadata Service 发起 RPC 调用)

经过服务自省后,客户端正式向对应实例发起调用。这样做最明显的好处是减少了注册中心的数据量,即注册中心只保存了应用级别的数据。

用户在使用 Dubbo-go 3.0的应用级服务发现能力时,可以仿照示例,直接在配置文件中配置服务自省模式和元数据中心信息,引入依赖,开启应用级别服务发现。

2.2 应用级服务发现介绍文章

应用级服务发现解析

3. Mesh 路由由规则

用户可定义路由文件:

virtual_service.yaml

以及 dist_rule.yml

框架可根据路由文件针对特定的请求进行流量转发。

4. 相关文章

阿里云官方介绍文章:《Dubbo 3.0 - 开启下一代云原生微服务》


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号