精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Dubbo-go v3.0 正式發(fā)布-打造國內(nèi)一流開源 Go 服務(wù)框架

開發(fā) 開發(fā)工具
Go 語言作為最流行的云原生語言,近些年擁有很高的熱度,一度備受國內(nèi)開源生態(tài)的關(guān)注,據(jù)筆者了解,眾多企業(yè)也在近年來從自身傳統(tǒng)技術(shù)棧轉(zhuǎn)型 Go 語言技術(shù)棧。Go 以其開發(fā)敏捷、易用性高、入門較為容易的優(yōu)勢深受廣大開發(fā)者青睞。

 ?Go 語言作為最流行的云原生語言,近些年擁有很高的熱度,一度備受國內(nèi)開源生態(tài)的關(guān)注,據(jù)筆者了解,眾多企業(yè)也在近年來從自身傳統(tǒng)技術(shù)棧轉(zhuǎn)型 Go 語言技術(shù)棧。Go 以其開發(fā)敏捷、易用性高、入門較為容易的優(yōu)勢深受廣大開發(fā)者青睞。而在 Go 語言生態(tài)成日益蓬勃發(fā)展之勢下,其生態(tài)的完備性,相比于飽經(jīng)考驗的 Java 生態(tài)依然有著很大的 Gap,對中小型企業(yè)來說,依然需要類似于 Spring 的 Go 框架來支撐日常業(yè)務(wù)開發(fā),渴望具備 Dubbo 生態(tài)的易用性和穩(wěn)定性,在這樣的訴求之下,初衷為 “Bridging The Gap Between Java And Go” 的 Dubbo-go 服務(wù)框架在 2016 年應(yīng)運而生,發(fā)展至今。

我們在今年下半年的云計算基礎(chǔ)架構(gòu)大會上了解到了“基礎(chǔ)架構(gòu)能力下沉”的重大意義,從單體架構(gòu)到云原生架構(gòu)的一步步發(fā)展,都在努力將業(yè)務(wù)代碼與中間件解耦,盡可能提供統(tǒng)一的編程接口,通過AOP的思路將服務(wù)調(diào)用抽象化,將接口標(biāo)準(zhǔn)化,將基礎(chǔ)設(shè)施的實現(xiàn)下沉化。而 Dubbo-go 正是在原有保證網(wǎng)絡(luò)通信的高可用、穩(wěn)定性的前提下,整合了一批常用開源組件,提供一致的編程接口可供擴(kuò)展和調(diào)用。在此之上,對齊 Dubbo 生態(tài)主流控制面,嘗試與云原生結(jié)合,朝向 Proxyless Service Mesh 方向發(fā)展,是我們整個生態(tài)項目的一致的愿景。

在 3.0 時代,我們的“野心” 不會止步于已有的用戶使用場景和基礎(chǔ)框架能力,我們選擇追求高可用、多語言、跨生態(tài)的優(yōu)點,打造新一代微服務(wù)基礎(chǔ)設(shè)施,實現(xiàn) “Bridging The Gap Between X And Go”,在擴(kuò)展 Go 生態(tài)的同時,也實現(xiàn)各種基礎(chǔ)設(shè)施的云原生化。

一 Dubbo-go 簡介

Dubbo-go 是常新的,每年都在不斷進(jìn)化。介紹 Dubbo-go 3.0 工作之前,先回顧其過往 6 年的發(fā)展歷程,以明晰未來的方向。

1 什么是 Dubbo-go

github.com/apache/dubbo-go 是一款高性能 Go 語言微服務(wù) RPC 框架,在 Dubbo 多語言生態(tài)中扮演重要角色,是編寫 go 語言微服務(wù)的最佳選擇之一。

開發(fā)者可以使用 Dubbo-go 框架高效地編寫 RPC 服務(wù),并支持與 Dubbo、gRPC 服務(wù)跨語言互通;您可以使用 Dubbo 生態(tài)強(qiáng)大的服務(wù)治理能力和運維能力,例如服務(wù)注冊發(fā)現(xiàn)、負(fù)載均衡、配置中心、可視化等功能;您也可以使用 Dubbo-go 生態(tài)的 pixiu 網(wǎng)關(guān)將服務(wù)暴露給集群外部訪問。

Dubbo-go 項目由于雨于 2016 年創(chuàng)立,2018 年開始組建開源社區(qū),2019 年項目正式進(jìn)入 Apache 軟件基金會,經(jīng)歷三年多不斷地迭代和優(yōu)化,2021 年底 dubbogo 社區(qū)正式推出集成 新通信協(xié)議、新序列化協(xié)議、新應(yīng)用注冊模型、新路由以及新的服務(wù)治理能力的 v3.0 版本,該版本在前期研發(fā)階段已經(jīng)擁有了眾多生產(chǎn)用戶的關(guān)注和使用。

Dubbo-go 是阿里開源項目中最活躍的開源社區(qū)之一,多年的發(fā)展使社區(qū)積累了眾多熱愛開源的活躍貢獻(xiàn)者、 Apache Committer/PMC 成員。不僅給 Dubbo 以及其他 Dubbo 生態(tài)項目示范了通過社區(qū)的組織運營幫助項目發(fā)展,而且?guī)椭颂嵘苏麄€ Dubbo 大社區(qū)的活躍度:

  • 包括 Apache/Dubbo 與 Apache/Dubbo-go 在內(nèi)的 Dubbo 生態(tài)被評為 2021 年中國 20 大最活躍社區(qū)之一,位居阿里所有開源項目第二【第一是螞蟻集團(tuán)的 AntD】
  • Dubbo-go 已經(jīng)成功申報中國科學(xué)技術(shù)協(xié)會主辦的「 2021“科創(chuàng)中國”開源創(chuàng)新榜評選 」
  • Dubbo-go 開源社區(qū)被 OSCHINA 評為“2021 年度 OSCHINA 優(yōu)秀開源技術(shù)團(tuán)隊”

2 功能介紹

Dubbo-go 目前已經(jīng)達(dá)成了其初始使命 “Bridging The Gap Between Java And Go” ,具備了強(qiáng)大的互聯(lián)互通能力,并在云原生方向取得了長足的進(jìn)展。

  • 互聯(lián)互通能力

?

??

??


Dubbo-go 生態(tài)覆蓋多種網(wǎng)絡(luò)協(xié)議:Triple、Dubbo、JSONRPC、gRPC、HTTP、HTTP2等。

其中 Triple 協(xié)議是 Dubbo3 生態(tài)主推的協(xié)議,是基于 gRPC 的擴(kuò)展協(xié)議,底層為HTTP2,可與 gRPC 服務(wù)互通。相當(dāng)于在 gRPC 可靠的傳輸基礎(chǔ)上,增加了 Dubbo 的服務(wù)治理能力。

Dubbo-go 生態(tài)整體已經(jīng)與 Dubbo、gRPC、Spring Cloud 等生態(tài)互聯(lián)互通,把東西向和南北向數(shù)據(jù)面流量統(tǒng)一于一體:既可以通過 Dubbo-go 進(jìn)行東西方向服務(wù)調(diào)用,也可以在 Dubbo-go-pixiu 中進(jìn)行南北向流量治理。

  • Devops 能力

?

??

??


在服務(wù)注冊發(fā)現(xiàn)方面,支持 Nacos 、Zookeeper、ETCD、Consul、Polaris-mesh(騰訊開源) 等服務(wù)注冊中間件,并擁有可擴(kuò)展能力。我們也會根據(jù)用戶使用情況,進(jìn)一步擴(kuò)展出用戶需要的實現(xiàn)。

在配置中心方面,開發(fā)者可以使用Nacos、Apollo(攜程開源)、Zookeeper 進(jìn)行框架/用戶的配置的發(fā)布和拉取。

在流量控制方面,我們內(nèi)置實現(xiàn)了固定窗口、滑動窗口等知名的限流算法,同時也支持與第三方成熟的限流熔斷框架 Hystrix,Sentinel-golang 等集成提供治理功能。

在分布式事務(wù)方面,我們支持 Seata-golang,實現(xiàn)了 TCC 模式分布式事務(wù)的調(diào)用。

在鏈路追蹤方面,我們支持基于 Jaeger、ZipKin 的鏈路追蹤能力。

在指標(biāo)可視化方面,我們支持使用 Prometheus 收集框架指標(biāo)和用戶指標(biāo)。

3 目標(biāo)用戶

Dubbo-go 從開始即是面向生產(chǎn)環(huán)境基于用戶的實際需求構(gòu)建開發(fā)的,其目標(biāo)用戶如下。

  • 廣大 Go 語言微服務(wù)開發(fā)者

如果您是 Go 語言微服務(wù)開發(fā)者,希望基于輕量級微服務(wù)框架快速開發(fā)自己的服務(wù),那么 Dubbo-go 3.0 將是您很好的一個選擇。

  • Dubbo 生態(tài)多語言使用者

如果您是 Dubbo 生態(tài)使用者,或者在語言切換的過程中面對兼容性問題,Dubbo-go 在多協(xié)議跨語言互通的場景下會祝您一臂之力。

  • gRPC 使用者

如果您希望在 gRPC 生態(tài)中增加服務(wù)治理能力,Dubbo-go 可幫助您很容易地從 gRPC 接入 Dubbo 生態(tài),在不改變業(yè)務(wù)代碼的情況下提供服務(wù)治理能力的支持。

  • 云原生架構(gòu)師

如果你在為公司選擇云原生解決方案,dubbogo 3.0 提供的 proxyless service mesh 也是一個很好的選擇,它可以幫助你以最低的成本助你從微服務(wù)體系接入 istio 控制面。當(dāng)然,dubbogo 的控制面能力還需要進(jìn)一步加強(qiáng),在未來的 3.1 版本中提供 proxyless 和 proxy 兩套 service mesh 方案。

二 Dubbo-go 3.0 有哪些不同

Apache 軟件基金會頂級項目 Dubbo 開源至今已有十年時間,而作為第三個里程碑,也是云原生時代的全新版本,Dubbo 3.0 的研發(fā)工作最早可以追溯到2018年,作為 Dubbo 多語言生態(tài)的重要一環(huán),Dubbo-go 社區(qū)也在2020年年底,將 3.0 版本作為主推方向。

在官方新特性支持(Triple 協(xié)議、應(yīng)用級服務(wù)發(fā)現(xiàn)、路由規(guī)則、柔性服務(wù)等等)的基礎(chǔ)之上,Dubbo-go 社區(qū)針對使用友好性,多語言多生態(tài)的兼容性,用戶編程和使用習(xí)慣等方面重點進(jìn)行了優(yōu)化,與其說 Go 社區(qū)的 3.0 是一次版本對齊的迭代,不如說是一個富有生命力的新開始。

1 新配置方案

  • 配置結(jié)構(gòu)

在 3.0 時代,我們更清晰地規(guī)范出了應(yīng)用層級配置和接口層級配置的概念,相比于之前版本,在配置結(jié)構(gòu)上進(jìn)行了重構(gòu)和精簡化。例如開發(fā)者在微服務(wù)場景之下,會關(guān)注注冊中心地址、協(xié)議、接口名等信息。只需要在配置文件中制定好:

dubbo: 
registries:
ZKRegistry: # 注冊中心配置
protocol: zookeeper # 注冊中心類型
address: 127.0.0.1:2181 # 注冊中心配置
protocols:
triple: # 協(xié)議配置
name: tri # 協(xié)議名
port: 20000 # 服務(wù)端監(jiān)聽端口
provider:
services:
GreeterProvider: # 服務(wù)提供者類名
interface: com.dubbogo.sample.DemoServiceName # 接口 ID

  • 配置中心

在 Dubbo-go 3.0 中,可以將上述框架配置或用戶配置放置在配置中心內(nèi)便于管理。在容器內(nèi)只需要放置配置中心相關(guān)信息即可基于該配置啟動框架。

dubbo: 
config-center: # 配置中心信息
protocol: nacos
address: 127.0.0.1:8848
data-id: dubbo-go-samples-configcenter-nacos-server

  • 配置API

開發(fā)者可以在代碼內(nèi)通過配置 API 生成配置實例結(jié)構(gòu),代碼中生成的配置與從文件內(nèi)讀取的配置等價。參考于 Java Builder 的設(shè)計來自于社區(qū)同學(xué)們,也代表了開發(fā)者對于接口易用性的訴求。

// 1. 通過 Builder 模式創(chuàng)建配置中心的配置 
configCenterConfig := config.NewConfigCenterConfigBuilder().
SetProtocol("nacos").SetAddress("127.0.0.1:8848").
SetDataID("dubbo-go-samples-configcenter-nacos-server").
SetGroup("dubbogo").
Build()
// 2. 通過 Builder 模式創(chuàng)建根配置
rootConfig := config.NewRootConfigBuilder().
SetConfigCenter(configCenterConfig).
Build()
// 3. 加載配置并啟動框架
rootConfig.Load()

2 Triple + PB 協(xié)議

Dubbo-go 在上半年首次發(fā)布的 3.0.0-rc1 版本內(nèi)已經(jīng)支持 Triple 協(xié)議。在此期間,由合作方釘釘部門相關(guān)同學(xué)提出了較多針對響應(yīng)時延、穩(wěn)定性等優(yōu)化建議。時至今日,在性能、用戶使用體驗、泛化調(diào)用、異常回傳、PB反射等方面都進(jìn)行了大量的優(yōu)化工作。

  • 性能優(yōu)化

將舊版本基于 net/http2 的實現(xiàn)切換為基于 grpc 的 http2 層實現(xiàn)方案。增強(qiáng)了底層傳輸?shù)姆€(wěn)定性和性能。經(jīng)過壓測,4c8g 單機(jī) Provider 可以處理 7萬 tps 的簡單請求。

我們使用了 3 臺相同規(guī)格機(jī)器,一臺作為Server(運行一個 triple-server),一臺作為Client(運行一個triple-server 和triple client) ,一臺作為施壓機(jī)向 Client 發(fā)起針對整個鏈路的調(diào)用施壓,并進(jìn)行數(shù)據(jù)記錄,記錄rt、真實 tps 以及client 和 server 的 CPU 占比數(shù)據(jù)。

TPS

Consumer CPU (%)

Provider CPU(%)

RT(ms)

1000

8.9

4.6

0.6

2000

16.5

8.5

0.6

5000

18.8

10

1

10000

37

18.3

1

20000

72

37

1

25000

77

40

1.2



通過壓測結(jié)果我們可以看到,我們在多跳鏈路和單機(jī)上萬級別tps的實驗環(huán)境下,可以保證毫秒級請求時延,并維持合理的 CPU 資源占用率。

  • 反射支持

Triple 默認(rèn)開啟 proto 反射,用戶可以使用 grpc_cli 針對 Triple 協(xié)議暴露的pb序列化服務(wù)進(jìn)行展示和調(diào)試。

在 proto 反射支持的前提下,dubbo-go-pixiu 提供了網(wǎng)關(guān)層協(xié)議轉(zhuǎn)換調(diào)用 triple 服務(wù)的支持。

$ grpc_cli ls localhost:20000 
org.apache.dubbogo.samples.api.Greeter
grpc.reflection.v1alpha.ServerReflection

  • 用戶編程方式

新 PB 編譯插件,新版本 dubbo-go 推薦 go 用戶使用 proto 文件定義接口,與 gRPC-go 的使用方式類似。

$ go install github.com/dubbogo/tools/cmd/protoc-gen-go-triple@v1.0.5 
$ protoc --go_out=. --go-triple_out=. ./helloworld.proto

關(guān)于 Triple 協(xié)議,最早是阿里云中間件團(tuán)隊在 Dubbo3 形成概念的時候就提出的。它相比于上一代 Dubbo 協(xié)議,解決了 Dubbo 生態(tài)與其他云原生架構(gòu)生態(tài)不互通的特點,并且用戶很難理解位于傳輸層的上一代二進(jìn)制協(xié)議。基于 HTTP2 協(xié)議的 gRPC 擴(kuò)展協(xié)議就很好滴解決了這一問題。第二是點是對 Mesh 等網(wǎng)關(guān)型組件不夠友好,在 3.0 時代,我們可以直接通過解析協(xié)議頭來獲取必要的元數(shù)據(jù),并很自然地適配網(wǎng)關(guān)對于 HTTP 協(xié)議的轉(zhuǎn)發(fā)實現(xiàn)。

從我們社區(qū)所對接的 Go 語言開發(fā)者考慮,PB 序列化更能適配與他們的開發(fā)習(xí)慣,方便從已有 gRPC 服務(wù)遷移業(yè)務(wù)代碼,還解決了升級過程中跨協(xié)議通信的兼容性問題,而在使用 Triple 協(xié)議后,跨語言互通的優(yōu)勢將進(jìn)一步體現(xiàn),從“可互通” 轉(zhuǎn)變?yōu)榛诔墒煨蛄谢桨傅摹胺€(wěn)定性互通”,方便用戶業(yè)務(wù)更廣泛的擴(kuò)展,簡單來說,在 Dubbo 時代,用戶進(jìn)行跨語言互通需要依賴多語言生態(tài)的 Dubbo 協(xié)議實現(xiàn),而在3.0 時代,您可以使用任意語言的 gRPC 實現(xiàn)來與 Dubbo 服務(wù)直接進(jìn)行互通,并共享 gRPC 生態(tài)的一系列組件,例如鏈路追蹤、可視化、cli 工具等等。

因此,我們認(rèn)為 Triple 的意義并不是一個簡單的擴(kuò)展協(xié)議,而是一個跨語言、跨生態(tài)概念的實現(xiàn),也是 Dubbo3 的核心 Feature 所在。

3 柔性服務(wù)

大規(guī)模分布式系統(tǒng)承載的用戶流量呈指數(shù)級增長,需要使用負(fù)載均衡算法將流量均勻地分散到各個機(jī)器中,提升集群的吞吐率和資源利用率。

傳統(tǒng)負(fù)載均衡算法大多是基于消費者視角,它們共同的局限性是無法根據(jù)服務(wù)提供者的當(dāng)前狀態(tài)動態(tài)調(diào)整分流策略,如 RR、hash 等算法。這些算法總是以盡可能公平的概率分配流量,但在實踐中公平不等于負(fù)載均衡。

我們期望的均衡分流策略是:

  • 動態(tài)性能評估:用戶不需要事先設(shè)置機(jī)器權(quán)重,框架在運行時自動評估系統(tǒng)性能,性能好的機(jī)器承擔(dān)更多流量,性能不足的機(jī)器承擔(dān)更少的流量;
  • 故障自愈能力:負(fù)載均衡算法能夠自動摘除故障的節(jié)點,并具備故障自愈能力;
  • 適當(dāng)限流策略:避免服務(wù)雪崩問題。

柔性服務(wù)作為新一代負(fù)載均衡策略被引入 Dubbo-go 3.0 中,核心能力包括容量評估和智能分流。

容量評估是評估當(dāng)前服務(wù)提供者狀態(tài)以保持最優(yōu)請求隊列長度。容量評估關(guān)注的兩個核心指標(biāo)是 TPS 和延遲,TPS 評估系統(tǒng)的每秒處理事物的速度,延遲反映用戶等待時間。在評估服務(wù)端容量時,要平衡系統(tǒng)吞吐率和用戶等待時間兩者之間的關(guān)系,理想狀態(tài)下在系統(tǒng)吞吐率盡可能大的情況下用戶延遲盡可能小。

?

??

??


真實容量受到硬件和下游依賴的限制,一次性預(yù)測真實容量難度較高。如上圖所示,TPS 在到達(dá)最佳值之前,與請求數(shù)呈單調(diào)遞增的關(guān)系。在 Dubbo-go 3.0.0 版本中,我們引入了爬山算法(HillClimbing),在調(diào)用過程中逐步逼近系統(tǒng)的最佳承載量。

HillClimbing 算法作用于服務(wù)提供者,周期性地判定當(dāng)前是否處于最佳狀態(tài)并動態(tài)更新系統(tǒng)容量。

探測間隔隨著時間逐步拉長,直至趨向穩(wěn)定。剛啟動時沒有歷史數(shù)據(jù),此時需要頻繁更新容量評估值,保證系統(tǒng)以盡可能快的速度探測到最優(yōu)容量。我們假定最優(yōu)容量短時間內(nèi)不會再強(qiáng)烈波動,且容量評估也會額外消耗資源,因此當(dāng)趨向穩(wěn)定的時候,算法將逐步延長探測周期。

容量更新策略與 TCP 擁塞控制相似。下面公示表示 HillClimbing 算法預(yù)設(shè)的兩種增量類型:

?

??

??


其中,lim 表示當(dāng)前容量,itv 表示當(dāng)前探測間隔。

在初期采用慢啟動策略,取一個較低水平的值作為容量初始值,但是以較高增量(alpha)向最優(yōu)容量逼近。如果當(dāng)前容量已經(jīng)增長到 TPS 降低的情況,則使用較低增量(beta)以更精準(zhǔn)的方式向最優(yōu)容量移動。

在每次調(diào)用過程結(jié)束后,服務(wù)提供者會通過 Dubbo-go 的附件(attachment)特性將最新的預(yù)估容量返回給服務(wù)消費者,消費者將信息緩存至本地并使用 P2C 算法實現(xiàn)智能分流。

P2C(Pick Two Random Choices)算法作用于服務(wù)消費者,它有著更科學(xué)的負(fù)載均衡策略并廣泛的應(yīng)用在多個知名開源項目中,如 Linkerd、Rsocket 等。該算法首先隨機(jī)選擇兩個節(jié)點,然后對比節(jié)點的剩余容量,選擇其中一個剩余容量較多的節(jié)點作為本次調(diào)用的服務(wù)提供者。

柔性服務(wù)將在后續(xù)版本中持續(xù)優(yōu)化,與 Dubbo 社區(qū)共同探索出一套適合微服務(wù)場景的柔性服務(wù)最佳實踐。

4 Pixiu 網(wǎng)關(guān)

Dubbo-go-pixiu 網(wǎng)關(guān)支持調(diào)用 GO/Java 的 Dubbo 集群。在 Dubbo-go 3.0 的場景下,我們可以通過 Pixiu 網(wǎng)關(guān),在集群外以 HTTP 協(xié)議請求 pixiu 網(wǎng)關(guān),在網(wǎng)關(guān)層進(jìn)行協(xié)議轉(zhuǎn)換,進(jìn)一步調(diào)用集群內(nèi)的Dubbo-go 服務(wù)。

?

??

??


用戶調(diào)用 Dubbo-go 服務(wù)的 path 為http://$(app_name)/$(service_name)/$(method)。

例如一個proto文件內(nèi)有如下定義:

package org.apache.dubbo.quickstart.samples; 

service UserProvider {
rpc SayHello (HelloRequest) returns (User) {}
}

message HelloRequest {
string name = 1;
}

并在dubbo-go 服務(wù)啟動時在dubbogo.yml 內(nèi)配置應(yīng)用名為my-dubbogo-app:

dubbo: 
application:
name: my-dubbogo-app

pixiu 網(wǎng)關(guān)即可解析 path 為 my-dubbogo-app/org.apache.dubbo.quickstart.samples.UserProvider/SayHello 的路由,并轉(zhuǎn)發(fā)至對應(yīng)服務(wù)。來自外部HTTP 請求的 body 為 json 序列化的請求參數(shù),例如 {"name":"test"}。

我們目前推薦使用 Nacos 作為注冊中心。

用戶可以在自己的集群里部署我們的demo,集群最好擁有暴露 lb 類型 service 的能力,從而可以在公網(wǎng)訪問至集群內(nèi)的服務(wù),您也可以直接集群內(nèi)進(jìn)行請求。

針對您的集群,執(zhí)行:

$ kubectl apply -f https://raw.githubusercontent.com/dubbogo/triple-pixiu-demo/master/deploy/pixiu-triple-demo.yml

會在 dubbogo-triple-nacos 命名空間下創(chuàng)建如下資源,包含三個 triple-server,一個pixiu網(wǎng)關(guān),一個 nacos server。并通過 Servcie 將服務(wù)暴露至公網(wǎng)。

namespace/dubbogo-triple-nacos created 
service/dubbo-go-nacos created
deployment.apps/dubbogo-nacos-deployment created
deployment.apps/pixiu created
deployment.apps/server created
service/pixiu created

獲取 pixiu 公網(wǎng) ip 并進(jìn)行調(diào)用

$ kubectl get svc -n dubbogo-triple-nacos 
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
dubbo-go-nacos ClusterIP 192.168.123.204 <none> 8848/TCP 32s
pixiu LoadBalancer 192.168.156.175 30.XXX.XXX.XX 8881:30173/TCP 32s

通過curl 調(diào)用 demo 服務(wù),并獲得響應(yīng)結(jié)果。

$ curl -X POST -d '{"name":"laurence"}' http://30.XXX.XXX.XX:8881/dubbogoDemoServer/org.apache.dubbo.laurence.samples.UserProvider/SayHello 
{"name":"Hello laurence","id":"12345","age":21}

5 運維能力與工具

  • 可觀測性

相比于上一版本的 Dubbo-go,本次發(fā)布在原來Dubbo協(xié)議的可觀測性的基礎(chǔ)上,提供了基于 Triple 協(xié)議可觀測性支持,適配于 Jaeger 的鏈路追蹤展示。對于數(shù)據(jù)上報,我們在框架中為之提供了接口,方便用戶實時上報業(yè)務(wù)埋點數(shù)據(jù),并默認(rèn)開啟 promehteus 的拉模式數(shù)據(jù)收集的支持。

框架對于 RPC調(diào)用相關(guān)信息,例如請求RT,接口名、方法名等數(shù)據(jù),也提供了默認(rèn)的 metrics 字段,供用戶收集和統(tǒng)計。

  • 日志

本次發(fā)版對日志模塊進(jìn)行了較大的改變和更新,用戶可以根據(jù)需求配置日志打印的級別、分片、文件輸出、保留時常等信息,并支持用戶自定義日志組件。

  • cli工具

Dubbo-go 3.0 會針對命令行工具進(jìn)行重點開發(fā),目前社區(qū)已提供用于發(fā)起 Dubbo RPC 調(diào)用的dubbo-go-cli;用于編譯 pb 文件的protoc-gen-go-triple 插件;并且 Dubbo-go 已經(jīng)適配 grpc_cli 工具的調(diào)試,在未來,我們會在健康檢查、服務(wù)信息獲取、RPC 調(diào)用調(diào)試、框架代碼初始化和接口編譯、服務(wù)部署等方面,進(jìn)一步增強(qiáng)命令行工具的能力,以提供更完備的服務(wù)治理和運維生態(tài)。

三 用戶視角的 Dubbo-go

作為一款站在用戶角度設(shè)計的框架,我們更希望給予廣大用戶更簡潔,更直觀,更“約定大于配置”的使用體驗,因此在研發(fā)階段,我們重點進(jìn)行了多輪的配置迭代以及 samples 倉庫的建設(shè)和維護(hù),為用戶提供了更為精簡的概念和重點突出的 samples 示例。

1 面向接口和配置的開發(fā)

Dubbo-go 3.0 為開發(fā)者屏蔽掉了底層實現(xiàn)細(xì)節(jié),只需要關(guān)注幾個關(guān)鍵點即可使用本框架進(jìn)行開發(fā),以 triple 服務(wù)為例。

  • 框架配置文件:dubbogo.yaml

框架啟動所依賴的配置項。

  • 接口定義

編寫 proto 文件,并使用提供的 protoc-gen-go-triple 插件以及官方 protoc-gen-go 插件進(jìn)行編譯。

  • 接口代碼實現(xiàn)

編寫服務(wù)實現(xiàn),并使用框架進(jìn)行啟動即可。

接口、實現(xiàn)、配置。是常見 go 微服務(wù)的基本依賴元素。Dubbo-go 提供一整套微服務(wù)的解決方案,并提供豐富的服務(wù)治理能力和可擴(kuò)展能力,從而可以讓用戶容易地接入使用。

2 代碼示例倉庫 dubbo-go-samples

我們在apache/dubbo-go-samples 倉庫的 master 分支維護(hù)了豐富的 dubbo-go 3.0 的代碼示例。包括多種協(xié)議的 rpc 調(diào)用,多種注冊中心的支持,多種配置中心的使用,以及泛化調(diào)用、配置API、日志、數(shù)據(jù)上報、鏈路追蹤等運維能力的展示,幾乎框架擁有的全部能力都可以在 samples 倉庫中找到對應(yīng)的常見用例。用戶也可以在1.5分支找到適配與dubbo-go 1.5.x 的示例。

通過 3.0 前期階段對于配置重構(gòu)和大幅度的用戶友好性優(yōu)化,目前 samples 倉庫內(nèi)的代碼和配置都已經(jīng)高度精簡化,從而突出單個模塊的能力。開發(fā)者可以下載倉庫后直接按照server 到 client 的順序來玩耍一個啟例模塊的服務(wù),即可體驗框架提供的能力。

samples 倉庫在迭代過程中也被賦予了更多的功能,社區(qū)開發(fā)同學(xué)都會熟悉,我們將框架倉庫、samples 倉庫通過 ci 集成測試的方式結(jié)合起來,保證框架開發(fā)者每次提交的代碼都能通過所有用例的 e2e 測試,從而保障開發(fā)質(zhì)量,提高迭代的效率。

四 社區(qū)協(xié)作

作為一個能力功能非常豐富的服務(wù)平臺,dubbogo 社區(qū)很重視與各大開源社區(qū)特別是阿里系開源產(chǎn)品社區(qū)以及各個公司的合作。

  • Nacos 社區(qū)

早期 Dubbo-go 社區(qū)就與 Nacos 社區(qū)展開密切合作,由多位核心貢獻(xiàn)者參與 Dubbo-go 研發(fā)支持中,在 3.0.0 版本中,增加了多位 Nacos 社區(qū)成員,在社區(qū)迭代中作出了許多建設(shè)性的建議和貢獻(xiàn)。

  • Polaris 社區(qū)

北極星(Polaris)是騰訊開源的服務(wù)發(fā)現(xiàn)和治理中心,致力于解決分布式或者微服務(wù)架構(gòu)中的服務(wù)可見、故障容錯、流量控制和安全問題。在 3.0.0 版本的開發(fā)中,Dubbo-go 社區(qū)與 Polaris 社區(qū)展開合作,實現(xiàn)了把 Polaris 作為 dubbo-go 的注冊中心。

  • Sentinel-Golang 社區(qū)

Sentinel 是面向分布式服務(wù)架構(gòu)的流量控制組件,在Sentinel-Golang 首個版本 0.1.0 正式發(fā)布后,Dubbo-go 社區(qū)就與 Sentinel-Golang 社區(qū)展開密切合作,在功能上支持 Sentinel-Golang 作為流量控制。

  • Seata-golang 社區(qū)

從 dubbogo v1.3 開始, 就集成了 seata-golang,實現(xiàn)了 TCC 模式分布式事務(wù)的調(diào)用。

?

??

??


兩個社區(qū)現(xiàn)已合作將 TCC 模式 seata-golang 集成到了 dubbo-go-pixiu 中,只需要簡單的配置、就能集成 TCC 模式協(xié)調(diào)分布式事務(wù)的方案,整體流程原理見上圖。為了進(jìn)一步降低大家使用分布式事務(wù)的門檻,seata-golang 社區(qū)也在考慮將 AT 模式做到 DB 代理層,屆時在 dubbo-go-pixiu 中使用 seata-golang 會更加方便,敬請期待。

  • 其他公司

dubbogo 本身是一個有著極高生產(chǎn)環(huán)境需求的項目,在發(fā)展過程中與阿里等很多公司有過合作。這些合作使得雙方都有收益,dubbogo 的質(zhì)量得以保證,功能得以拓展,合作方自身的平臺穩(wěn)定性得到極大提升。

五 展望

前面講到,Dubbo-go 3.0 對我們來說是一個新時代的起點,在未來的迭代中,我們除了繼續(xù)維護(hù)上述流量調(diào)度以及服務(wù)治理能力之外,還會基于幾個

1 流量路由規(guī)則

Dubbo-go 3.0 在路由規(guī)則方面設(shè)計與 dubbo 一致,提供了支持 mesh 方式的路由規(guī)則策略并接入了 dubbo-admin 這一控制面板。

在 mesh 路由方面,dubbo-go 將路由規(guī)則分為 VirtualService 和 DestinationRule 兩部分,其中 DestinationRule 定義了目標(biāo)地址的規(guī)則,通過 subset 和 host 關(guān)聯(lián)到對應(yīng)的集群,而 VirtualService 則定義了具體的路由匹配規(guī)則。當(dāng)客戶端發(fā)起一次調(diào)用時,首先經(jīng)過 VirtualService 路由到具體的 subset,然后根據(jù) DestinationRule 中對應(yīng) subset 的 labels 信息找到具體的集群。這種設(shè)計方式將路由規(guī)則和目標(biāo)地址進(jìn)行了解耦,支持 VirtualService 和 DestinationRule 的多種組合,實現(xiàn)了更加靈活的路由策略,也可以更加輕易實現(xiàn) A/B 測試、金絲雀發(fā)布、藍(lán)綠發(fā)布等能力。

關(guān)于接入 dubbo-admin 一塊工作,目前 dubbo-go 已經(jīng)重構(gòu)了 zookeeper 配置中心的代碼邏輯,并實現(xiàn)了和 dubbo-admin 互通,即用戶可以在 dubbo-admin 上動態(tài)發(fā)布、更新路由來調(diào)度集群內(nèi)流量(目前僅限 zookeeper),而應(yīng)用可以立即感知,無需重啟。在不久的未來我們會繼續(xù)深入打通這一部分的能力互通,支持 nacos 等其他常用配置中心、注冊中心的互通,徹底實現(xiàn)控制面板與數(shù)據(jù)面板的分離。

2 統(tǒng)一控制面與服務(wù)架構(gòu)創(chuàng)新

我們將推出兼容 Dubbo-admin 的統(tǒng)一控制面,可在控制面中通過路由配置動態(tài)調(diào)度集群內(nèi)流量,將新路由規(guī)則以更靈活、更易用的方式落地在生產(chǎn)場景下,運維人員也可以在控制面上一目了然地了解到集群內(nèi) dubbo-go 應(yīng)用的實時情況,進(jìn)一步來講,控制面將會擁有服務(wù)測試、灰度發(fā)布、監(jiān)控、流量調(diào)度等一系列運維能力。

我們還會在適配于 pixiu 網(wǎng)關(guān)協(xié)議轉(zhuǎn)換的基礎(chǔ)之上,進(jìn)一步發(fā)掘網(wǎng)關(guān)的能力,朝 proxyless service-mesh 的方向探索新的微服務(wù)架構(gòu)。

3 進(jìn)一步云原生化

我們將在 dubbo-go 1.5 版本在 k8s 方向探索的基礎(chǔ)之上,進(jìn)一步支持云原生能力,計劃包含探針、配置、資源監(jiān)聽等方面,使得框架在云原生架構(gòu)下具有更好的使用體驗,更多樣的服務(wù)治理能力。

作者介紹:

李志信(github @laurencelizhixin),dubbo-go 3.0 負(fù)責(zé)人,Apache Dubbo PMC,來自阿里云中間件團(tuán)隊,從事 Go 語言中間件的研發(fā)和開源工作。

于雨 (github @AlexStocks),dubbo-go 社區(qū)負(fù)責(zé)人,Apache Dubbo PMC,螞蟻集團(tuán)可信原生部【TNT】基礎(chǔ)設(shè)施和中間件研發(fā)一線程序員。工作十一年來陸續(xù)參與和改進(jìn)過 Redis/Pika/Pika-Port/etcd/Muduo/Dubbo/dubbo-go/Sentinel-golang/Seata-golang 等知名項目。

牛學(xué)蔚(github @justxuewei),Apache Dubbo Committer,北郵計算機(jī)學(xué)院二年級研究生,對中間件、云原生領(lǐng)域有著濃厚的興趣。

董劍輝(github @Mulavar),Apache Dubbo Committer,目前主要關(guān)注的開源方向為 Dubbo、Flink、Calcite。

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-03-07 12:42:44

騫云科技

2021-12-20 09:47:20

TailwindCSS前端開發(fā)

2022-12-29 16:09:25

2011-09-06 10:18:52

jQuery

2014-09-12 14:19:51

Cocos 2d-JS

2010-01-21 10:22:34

合力金橋軟件呼叫中心SaaS

2014-06-19 10:11:54

GoGo語言

2014-04-24 10:24:05

Cocos2d-xWinPhone8跨平臺

2022-04-20 08:00:53

服務(wù)Istio腳手架

2015-10-26 19:02:18

LG

2021-09-24 13:10:01

華為智慧口岸

2018-01-22 11:50:30

華為云

2014-04-11 11:10:14

Cocos2d-x v手游引擎

2021-08-19 09:37:06

Go 1.17語言架構(gòu)

2009-07-06 10:38:56

Wix 3.0

2014-12-17 09:26:26

GoAndroid

2011-12-28 15:26:16

Spring\Dubb

2012-11-21 09:47:42

Pomelo游戲服務(wù)端框架開源

2013-02-22 08:53:31

網(wǎng)絡(luò)部署UCS平臺網(wǎng)絡(luò)虛擬化

2012-03-30 14:15:50

GoogleGo
點贊
收藏

51CTO技術(shù)棧公眾號

日本黄色一区| yourporn在线观看中文站| 国模 一区 二区 三区| 亚洲精品理论电影| www.99av.com| 激情网站在线| 国产欧美日韩三级| 亚洲自拍偷拍视频| 国产成人精品网| 亚洲一本二本| 亚洲欧美日韩一区二区三区在线| www.久久91| h片在线观看视频免费免费| 久久久久99精品国产片| 99在线高清视频在线播放| 国产精品suv一区| 国产精品黄色| 色阁综合伊人av| 人体私拍套图hdxxxx| 欧美大片网站| 色屁屁一区二区| 国产手机免费视频| 免费网站免费进入在线| 91视视频在线观看入口直接观看www| 国产精品夜间视频香蕉| 黄色片视频网站| 亚洲精品a级片| 亚洲香蕉成视频在线观看| 欧美xxxx黑人| 一级欧美视频| 色噜噜久久综合| 无码专区aaaaaa免费视频| 男人资源在线播放| 国产日韩在线不卡| 久久久99国产精品免费| 免费的黄色av| 国产精品一区久久久久| 国产三级精品网站| 国产情侣免费视频| 久久久久久久尹人综合网亚洲| 国产69精品久久久久9999| 69夜色精品国产69乱| 青青草综合网| 亚洲最新中文字幕| 欧洲女同同性吃奶| 免费毛片在线不卡| 亚洲美女视频网站| 国产精品揄拍100视频| 精品三级av| 欧美精品一区二区高清在线观看| 美女又黄又免费的视频| 欧美日本三级| 日韩无一区二区| 国产精品二区视频| 三级欧美日韩| 欧美成人高清电影在线| 精品久久久久一区二区| 超碰成人免费| 日韩麻豆第一页| 蜜桃传媒一区二区亚洲av| 人体久久天天| 亚洲欧美日韩综合| 国产精品久久久久久久av| 国产免费久久| 中文字幕亚洲一区二区三区五十路| 久久亚洲AV无码专区成人国产| 国产成人精品999在线观看| 国产亚洲一区二区精品| 日本成人免费视频| 999久久久亚洲| 欧美大片va欧美在线播放| 久草视频手机在线观看| 中文精品在线| 国产精品 欧美在线| 一区二区视频免费| 国产综合色视频| 国产欧美日韩综合精品二区| 手机看片福利在线观看| 国产日韩欧美精品综合| 亚洲精品一区二区三区樱花 | 成人黄色777网| 狠狠爱一区二区三区| 欧美伦理影视网| 亚洲国产精品传媒在线观看| 国产高潮呻吟久久久| heyzo高清在线| 91久久精品午夜一区二区| 日本肉体xxxx裸体xxx免费| 欧美2区3区4区| 日韩精品一二三四区| 日本伦理一区二区三区| 亚洲精选久久| 国产美女搞久久| 国产 欧美 自拍| 国产丝袜美腿一区二区三区| 热久久最新地址| 欧美电影免费观看| 欧美一级日韩一级| 性色av蜜臀av色欲av| 日韩在线中文| 91国内揄拍国内精品对白| 国产天堂第一区| 国产a视频精品免费观看| 免费久久久一本精品久久区| 好吊日视频在线观看| 精品毛片三在线观看| 九九热精品在线播放| 国产一区二区三区亚洲| 日韩在线观看免费全集电视剧网站 | 五十路熟女丰满大屁股| 亚洲成人一区在线观看| 亚洲精品在线电影| 国产尤物在线播放| 日韩精品乱码av一区二区| 91久久国产综合久久蜜月精品| 国产视频网站在线| 午夜一区二区三区在线观看| 热久久久久久久久| 欧美日韩xxxx| 97av在线视频| 亚洲av无码乱码国产精品| 国产精品久久二区二区| 欧美xxxxx在线视频| 4438全国亚洲精品观看视频| 久久久av亚洲男天堂| 久久黄色精品视频| 成人美女视频在线观看| 永久免费看av| 色狠狠一区二区三区| 亚洲免费av网址| 日本va欧美va国产激情| 国产成人啪免费观看软件| 一区二区高清视频| 国产综合色区在线观看| 亚洲精品一区二区久| 国产精品二区一区二区aⅴ| 国产精品99久久久久久久vr | 成人精品久久久| av大片在线看| 欧美在线观看视频一区二区三区| 波多野结衣办公室33分钟| 亚洲少妇在线| 欧美国产综合视频| 天堂资源在线| 亚洲女人被黑人巨大进入al| 亚洲高清毛片一区二区| 97久久超碰国产精品| 欧美亚洲黄色片| jizz性欧美23| 97久久久免费福利网址| 全部免费毛片在线播放一个| 亚洲二区在线视频| 亚洲激情 欧美| 一本色道88久久加勒比精品| 精品一区二区久久久久久久网站| 男人av在线播放| 亚洲欧美日韩国产精品| 中文字幕免费在线观看视频| 久久久一区二区三区捆绑**| 欧美成人精品欧美一级乱| 国产尤物久久久| 国产精品你懂得| 日日夜夜精品一区| 制服丝袜亚洲色图| 麻豆chinese极品少妇| 成人午夜激情片| 欧美日本视频在线观看| 蜜臀91精品国产高清在线观看| 日韩美女在线播放| 午夜视频成人| 精品人伦一区二区色婷婷| 国产网址在线观看| 久久亚洲影视婷婷| 日本国产一级片| 欧美 日韩 国产 一区| 国产精品毛片va一区二区三区| 超碰激情在线| 中文字幕亚洲第一| 国产黄色美女视频| 欧美日韩免费一区| 国产精品1区2区3区4区| 国产激情精品久久久第一区二区| 亚洲国产成人精品无码区99| 精品中文一区| 亚洲自拍偷拍一区| 最新中文字幕在线播放| 丝袜亚洲欧美日韩综合| 国模无码一区二区三区| 在线一区二区三区四区| 草视频在线观看| 97久久精品人人做人人爽| 岛国毛片在线播放| 9色国产精品| 伊人色综合影院| theporn国产在线精品| 国产精品99久久久久久人 | 国产精品天天狠天天看| 青青草原国产在线| 宅男66日本亚洲欧美视频| 精品人妻无码一区二区三区蜜桃一| 精品女厕一区二区三区| 三上悠亚在线观看视频| 26uuu另类欧美| 欧美污在线观看| 日本不卡一二三区黄网| 日本福利视频一区| 日韩在线精品| 欧美日韩国产精品一卡| 日韩免费高清视频网站| 国产精品成人aaaaa网站| 青青草视频在线免费直播| 在线日韩中文字幕| 婷婷国产在线| 日韩午夜在线观看| 中文字幕在线观看国产| 高跟丝袜一区二区三区| 妺妺窝人体色www婷婷| 国产精品久久夜| 免费看污片网站| 成人丝袜视频网| 波多野结衣中文字幕在线播放| 青青草97国产精品免费观看| 精品国产一区三区| 欧美三级特黄| 麻豆中文字幕在线观看| 欧美丝袜丝交足nylons172| 久久久国产精品一区二区三区| 日韩区欧美区| 91精品视频在线看| 福利精品一区| 国产精品久久久久久久一区探花| 天堂中文av在线资源库| 97av在线视频| 擼擼色在线看观看免费| 亚州国产精品久久久| 免费电影视频在线看| 欧美成人免费全部| 免费a级人成a大片在线观看| 最近2019年手机中文字幕| 国产午夜在线视频| 亚洲天堂av电影| 福利成人在线观看| 中文字幕日本精品| 成年人在线看| 日韩在线不卡视频| 成人午夜电影在线观看| 中文字幕欧美在线| 日本激情视频在线观看| 日韩在线视频中文字幕| 日本在线观看| 久久这里有精品视频| 最新超碰在线| 欧美日韩第一视频| 国产白浆在线免费观看| 2020欧美日韩在线视频| 国产精品专区免费| 国产精品久久精品| 91精品一区| 91亚色免费| 国产精品nxnn| 久久综合狠狠综合久久综青草| 香蕉人人精品| 日本在线观看不卡| 999视频精品| 青青青在线观看视频| 在线国产日韩| 毛葺葺老太做受视频| 久久精品国产秦先生| 亚洲视频在线不卡| jlzzjlzz亚洲日本少妇| 国产熟女一区二区| 亚洲色图制服丝袜| 99热国产在线观看| 欧美三区在线观看| www天堂在线| 日韩精品极品视频| 1pondo在线播放免费| 欧美裸体男粗大视频在线观看| 激情视频网站在线播放色| 国产精品99导航| 51vv免费精品视频一区二区| 久久人人九九| 91精品天堂福利在线观看| 日韩亚洲欧美视频| 日韩1区2区3区| 中文字幕av一区二区三区人妻少妇| 国产精品羞羞答答xxdd| 久久精品一区二区免费播放 | 亚洲欧美日本精品| 成人在线观看亚洲| 2019日本中文字幕| 亚洲高清国产拍精品26u| 精品国产电影| 国产精品99一区二区三区| 草草久久久无码国产专区| 久久99久久久久| aaaaa一级片| 一区二区三区不卡视频在线观看 | 7777精品伊人久久久大香线蕉 | 人妻无码视频一区二区三区| 国产一本一道久久香蕉| 国产女主播喷水高潮网红在线| 亚洲精品自拍动漫在线| jizz国产在线| 亚洲第一网站男人都懂| 精品黄色免费中文电影在线播放| 国内精品久久影院| 四虎地址8848精品| 久久综合狠狠综合久久综青草| 欧美激情91| 亚洲第一中文av| 亚洲网一区二区三区| 狠狠色综合一区二区| 亚洲国产一区二区三区在线播放| 50路60路老熟妇啪啪| 成人一区在线看| 国产美女久久久久久| 91久久国产最好的精华液| 日本免费不卡视频| 欧美久久精品午夜青青大伊人| 日本欧美韩国| 日本精品一区二区三区视频| 国产精品久久久久久久久久妞妞| 91视频福利网| 中文字幕一区二区三区四区 | 波多野结衣欲乱| 91精品1区2区| 日本电影一区二区在线观看| 欧美激情一二三| 日韩中文字幕一区二区高清99| 成人性做爰片免费视频| 毛片av一区二区| 国产一区二区三区视频播放| 欧美性高清videossexo| 国内av一区二区三区| 欧洲日本亚洲国产区| 午夜精品影视国产一区在线麻豆| 丝袜人妻一区二区三区| 国产成人精品一区二区三区网站观看 | caoporn成人免费视频在线| 欧美性受黑人性爽| 国产精品中文字幕欧美| 黄色录像一级片| 欧美一区二区三区系列电影| 26uuu亚洲电影在线观看| 91天堂在线视频| 自拍偷拍欧美| 国产一级二级av| 香蕉av福利精品导航| 天堂网在线资源| 欧美中文在线观看| 免费精品国产的网站免费观看| 国产成人黄色片| 国产亚洲婷婷免费| 日韩欧美一级大片| 精品国偷自产在线视频| 国产精选久久| 久久婷婷国产综合国色天香| 中文字幕第20页| 欧美怡红院视频| 国产传媒在线播放| 不卡视频一区二区三区| 国产婷婷精品| 亚洲精品国产一区黑色丝袜| 欧美三级日韩三级| av网站在线看| 国产乱码精品一区二区三区日韩精品 | 综合国产在线视频| 精品国产第一国产综合精品| 真人做人试看60分钟免费| 不卡av在线免费观看| 久久久久在线视频| 色婷婷综合成人| 草草视频在线一区二区| 久久精品.com| 中文字幕一区二区三区在线观看 | 久久久久久久久成人| 免费拍拍拍网站| 国产欧美精品一区aⅴ影院| 国产视频91在线| 中文字幕一区二区精品| 日韩欧美久久| 日韩中文字幕二区| 亚洲欧洲综合另类| 天堂成人在线| 91久久精品视频| 亚洲欧美日本日韩| 午夜激情视频在线播放| 亚洲国产天堂久久国产91| 日本一区免费网站| 日本一本中文字幕| 亚洲国产精品t66y| 日本免费一区视频| 国产又爽又黄的激情精品视频| 在线播放日韩| 可以免费看av的网址| 亚洲国产日韩精品在线| 国产成年精品| 免费看国产黄色片| 亚洲成人高清在线|