分布式大規模服務調用架構


問題探索

一個完備的分布式架構應該具備和功能?

討論范圍

1.分布式微服務架構畫像

2.分布式微服務市場需求與前景

3.分布式微服務在企業項目中的地位

4.分布式微服務生態圈

5.技術架構嚴謹的本質

6.分布式微服務治理技術原理

7.分布式微服務服務異步與同步的原理

8.分布式微服務Spring Cloud Alibaba Dubbo三大法寶

聚焦

架構設計思想

1.分布式微服務架構畫像

1.1 Dubbo架構

img

1.2 分布式Dubbo架構詳細設計

http://dubbo.apache.org/en-us/docs/dev/design.html

數據為什么要使用序列化?

因為協議環境針對的是遠程過程調用,針對方法級別的調用,傳輸的參數是一個對象,因此使用的是序列化。

/dev-guide/images/dubbo-framework.jpg

2.分布式微服務市場需求與前景

2.1 Baidu RPC Framework

百度在2008年開發的RPC框架,在百度產品線廣泛使用,已被brpc代替。

百度內部最常使用的工業級RPC框架,有1,000,000+個實例(不包含Client),在百度內叫“baidu-rpc",目前只開源C++版本。

2.2 谷歌Grpc

主要用於智能電視、智能家居。

支持跨語言:Android java、C#、Node、PHP、Python、Ruby...

GRPC都基於定義服務的思想。

既指定可以通過其參數和返回類型進行遠程調用。

GRPC可以將協議緩沖區用作其接口定義語言(IDL)和其基礎消息交換格式。

2.3 Sofa RPC

是螞蟻金服的技術架構。

2.4 Netflix Feign

2.5 Spring Cloud Alibaba Dubbo

3.在企業項目中的使用

4.分布式微服務服務異步與同步的原理

4.1 通訊模型

callback是真正的異步,可跨線程調用。

future是偽異步。

Dubbo中沒有同步調用,均為異步調用。

使用請求ID實現請求和響應進行映射。

5.分布式微服務Spring Cloud Alibaba Dubbo三大法寶

5.1 法寶一(URL BUS)

每一個資源有自己獨有的地址。

例如http://www.solomonall.com?pid=1234&token=sns212dfdfd&threads=10

通用URL思想:

URL

ftp:

mysql:

oracle://

dubbo://

registry://

consumer://

tmp://

URL BUS結構詳解

urls:定位在一個資源時,還可以游離至其他的資源,可以理解為多分枝列表。

URL輸出案例

URL BUS如何生成

URL BUS如何進行協議轉換

5.2 法寶二(Dynamic Proxy)

動態代理,在Dubbo中充當遠程訪問的中間層,由於組織請求數據,然后將Invocation數據傳輸到各個Invoker中進行處理。

5.3 法寶三(Extension Loader)

一個接口代表一個服務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM