dubbo-go 3.0 新特性

2022-04-14 11:12 更新

1. Triple 協(xié)議 

1.1 概述

  • 通信層面Triple 協(xié)議,也稱為Dubbo3協(xié)議,是基于HTTP2 + gRPC協(xié)議,增加特定字段和邏輯的擴(kuò)展協(xié)議,保證了和原生gRPC協(xié)議互通。在此基礎(chǔ)之上,Triple 新協(xié)議將更原生地支持 Dubbo 服務(wù)治理能力。并支持流式RPC調(diào)用。簡(jiǎn)單來(lái)說(shuō),可以理解為 Triple = gRPC + Dubbo
  • 序列化Triple 協(xié)議使用高效的PB序列化方式,并在此基礎(chǔ)之上增加序列化協(xié)議的可擴(kuò)展支持。
  • 用戶開發(fā)習(xí)慣:Triple 服務(wù)在開發(fā)前需要預(yù)定義.proto文件,對(duì)于習(xí)慣在編碼前先定義IDL的Go語(yǔ)言開發(fā)者帶來(lái)便捷。不同于符合java編程習(xí)慣的,定義JavaClassName用于描述接口的 Dubbo-go 1.x版本。
  • 跨語(yǔ)言互通性:可與 Dubbo-Java 實(shí)現(xiàn)跨語(yǔ)言互通。

2. 應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)

2.1 簡(jiǎn)介

在服務(wù)注冊(cè)階段,服務(wù)端實(shí)例將應(yīng)用級(jí)別的注冊(cè)信息,主要包含從應(yīng)用名到實(shí)例IP的映射注冊(cè)到注冊(cè)中心。在服務(wù)發(fā)現(xiàn)階段,客戶端實(shí)例,通過(guò)注冊(cè)中心獲取到需要請(qǐng)求的服務(wù)實(shí)例IP。進(jìn)入服務(wù)自省階段,服務(wù)自省過(guò)程為通過(guò)應(yīng)用信息獲取接口信息的過(guò)程。如上圖,包含兩種模式:

  1. remote模式:通過(guò)元數(shù)據(jù)中心(例如 zk )獲取應(yīng)用到接口元數(shù)據(jù)的映射
  2. local模式:直接通過(guò)服務(wù)端獲取應(yīng)用到接口元數(shù)據(jù)的映射(通過(guò) Dubbo 協(xié)議針對(duì) Metadata Service 發(fā)起 RPC 調(diào)用)

經(jīng)過(guò)服務(wù)自省后,客戶端正式向?qū)?yīng)實(shí)例發(fā)起調(diào)用。這樣做最明顯的好處是減少了注冊(cè)中心的數(shù)據(jù)量,即注冊(cè)中心只保存了應(yīng)用級(jí)別的數(shù)據(jù)。

用戶在使用 Dubbo-go 3.0的應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)能力時(shí),可以仿照示例,直接在配置文件中配置服務(wù)自省模式和元數(shù)據(jù)中心信息,引入依賴,開啟應(yīng)用級(jí)別服務(wù)發(fā)現(xiàn)。

2.2 應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)介紹文章

應(yīng)用級(jí)服務(wù)發(fā)現(xiàn)解析

3. Mesh 路由由規(guī)則

用戶可定義路由文件:

virtual_service.yaml

以及 dist_rule.yml

框架可根據(jù)路由文件針對(duì)特定的請(qǐng)求進(jìn)行流量轉(zhuǎn)發(fā)。

4. 相關(guān)文章

阿里云官方介紹文章:《Dubbo 3.0 - 開啟下一代云原生微服務(wù)》


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)