codecamp

dubbo-go 3.0 新特性

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 - 开启下一代云原生微服务》


Triple 协议快速开始
架构
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

介绍与示例

应用级服务发现

动态修改运行态配置项

参考手册

配置中心参考手册

元数据参考手册

API 参考手册

Kubernetes 生命周期对齐探针

在线运维命令参考手册

Telnet 命令参考手册

Maven 插件参考手册

性能优化

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }