av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

分布式系統(tǒng):分布式架構(gòu)服務(wù)調(diào)用

一、服務(wù)調(diào)用

和傳統(tǒng)的單體架構(gòu)相比,分布式多了一個遠程服務(wù)之間的通信,不管是 soa 還是微服務(wù),他們本 質(zhì)上都是對于業(yè)務(wù)服務(wù)的提煉和復(fù)用。那么遠程服務(wù)之間的調(diào)用才是實現(xiàn)分布式的關(guān)鍵因素。

二、實現(xiàn)方式

1、HTTP 應(yīng)用協(xié)議的通信框架

1. HttpURLConnection java 原生 HttpURLConnection是基于http協(xié)議的,支持get,post,put,delete等各種請求方 式,最常用的就是get和post

2. Apache Common HttpClient HttpClient 是Apache Common 下的子項目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本。

  • 實現(xiàn)了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
  • 支持 HTTPS 協(xié)議
  • 支持代理服務(wù)器等

3. OKhttp3 OKHttp是一個當前主流的網(wǎng)絡(luò)請求的開源框架, 用于替代HttpUrlConnection和Apache HttpClient

  • 支持http2.0,對一臺機器的請求共享一個socket。
  • 采用連接池技術(shù),可以有效的減少Http連接數(shù)量。
  • 無縫集成GZIP壓縮技術(shù)。
  • 支持Response Cache,避免重復(fù)請求 域名多IP支持

4. RestTemplate Spring RestTemplate 是 Spring 提供的用于訪問 Rest 服務(wù)的客戶端,RestTemplate 提供了多 種便捷訪問遠程Http服務(wù)的方法,能夠大大提高客戶端的編寫效率,所以很多客戶端比如 Android 或者第三方服務(wù)商都是使用 RestTemplate 請求 restful 服務(wù)。

  • 面向 URL 組件,必須依賴于主機 + 端口 + URI
  • RestTemplate 不依賴于服務(wù)接口,僅關(guān)注 REST 響應(yīng)內(nèi)容
  • Spring Cloud Feign

2、RPC 框架

RPC全稱為remote procedure call,即遠程過程調(diào)用。借助RPC可以做到像本地調(diào)用一樣調(diào)用遠 程服務(wù),是一種進程間的通信方式. 。常見的RPC框架有以下幾種。

1. Java RMI Java RMI(Romote Method Invocation)是一種基于Java的遠程方法調(diào)用技術(shù),是Java特有的一 種RPC實現(xiàn)。

2. Hessian

Hessian是一個輕量級的remoting onhttp工具,使用簡單的方法提供了RMI的功能. 相比 WebService,Hessian更簡單、快捷。采用的是二進制RPC協(xié)議,因為采用的是二進制協(xié)議,所以 它很適合于發(fā)送二進制數(shù)據(jù)。

3. Dubbo

Dubbo是阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的 RPC 實現(xiàn)服 務(wù)的輸出和輸入功能,可以和Spring框架無縫集成。Dubbo是一款高性能、輕量級的開源Java RPC 框架,它提供了三大核心能力:面向接口的遠程方法調(diào)用,智能容錯和負載均衡,以及服務(wù)自動注 冊和發(fā)現(xiàn)。

4. gRPC

gRPC是由Google公司開源的一款高性能的遠程過程調(diào)用(RPC)框架,可以在任何環(huán)境下運行。該 框架提供了負載均衡,跟蹤,智能監(jiān)控,身份驗證等功能,可以實現(xiàn)系統(tǒng)間的高效連接。

3、跨域調(diào)用

1、跨域

在分布式系統(tǒng)中, 會有調(diào)用其他業(yè)務(wù)系統(tǒng),導致出現(xiàn)跨域問題,跨域?qū)嵸|(zhì)上是瀏覽器的一種保護處 理。如果產(chǎn)生了跨域,服務(wù)器在返回結(jié)果時就會被瀏覽器攔截(注意:此時請求是可以正常發(fā)起的,只是 瀏覽器對其進行了攔截),導致響應(yīng)的內(nèi)容不可用. 產(chǎn)生跨域的幾種情況有一下:

2、常見解決方案

1. 使用jsonp解決網(wǎng)站跨域 缺點:不支持post請求,代碼書寫比較復(fù)雜

2. 使用HttpClient內(nèi)部轉(zhuǎn)發(fā)

3. 使用設(shè)置響應(yīng)頭允許跨域 response.setHeader(“
Access-Control-Allow-Origin”, “*”); 設(shè)置響應(yīng)頭允許跨域.

4. 基于Nginx搭建企業(yè)級API接口網(wǎng)關(guān)

5. 使用Zuul搭建微服務(wù)API接口網(wǎng)關(guān)

Zuul是spring cloud中的微服務(wù)網(wǎng)關(guān)。網(wǎng)關(guān): 是一個網(wǎng)絡(luò)整體系統(tǒng)中的前置門戶入口。請求首先通 過網(wǎng)關(guān),進行路徑的路由,定位到具體的服務(wù)節(jié)點上??梢允褂脄uul的過濾器的請求轉(zhuǎn)發(fā)去解決跨域問題


網(wǎng)站題目:分布式系統(tǒng):分布式架構(gòu)服務(wù)調(diào)用
鏈接URL:http://uogjgqi.cn/article/cdooeeh.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流