自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

二、實(shí)現(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 下的子項(xiàng)目,可以用來提供高效的、最新的、功能豐富的支持 HTTP 協(xié)議的客戶端編程工具包,并且它支持 HTTP 協(xié)議最新的版本。

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

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

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

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

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

2、RPC 框架

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

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

2. Hessian

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

3. Dubbo

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

4. gRPC

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

3、跨域調(diào)用

1、跨域

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

2、常見解決方案

1. 使用jsonp解決網(wǎng)站跨域 缺點(diǎn):不支持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): 是一個(gè)網(wǎng)絡(luò)整體系統(tǒng)中的前置門戶入口。請求首先通 過網(wǎng)關(guān),進(jìn)行路徑的路由,定位到具體的服務(wù)節(jié)點(diǎn)上??梢允褂脄uul的過濾器的請求轉(zhuǎn)發(fā)去解決跨域問題

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-10-10 09:16:34

Zookeeper架構(gòu)分布式

2017-10-27 08:40:44

分布式存儲(chǔ)剪枝系統(tǒng)

2023-10-26 18:10:43

分布式并行技術(shù)系統(tǒng)

2023-05-12 08:23:03

分布式系統(tǒng)網(wǎng)絡(luò)

2023-02-11 00:04:17

分布式系統(tǒng)安全

2018-12-14 10:06:22

緩存分布式系統(tǒng)

2017-09-01 05:35:58

分布式計(jì)算存儲(chǔ)

2019-06-19 15:40:06

分布式鎖RedisJava

2017-10-17 08:33:31

存儲(chǔ)系統(tǒng)分布式

2017-12-20 16:15:30

分布式系統(tǒng)架構(gòu)

2019-12-26 08:59:20

Redis主從架構(gòu)

2017-01-16 14:51:26

京東分布式服務(wù)CallGraph

2011-04-18 14:43:23

分布式測試分布式測試

2010-03-24 17:07:52

無線分布式系統(tǒng)

2019-08-05 07:58:01

分布式架構(gòu)系統(tǒng)

2010-11-01 05:50:46

分布式文件系統(tǒng)

2024-03-01 09:53:34

2018-07-17 08:14:22

分布式分布式鎖方位

2022-06-27 08:21:05

Seata分布式事務(wù)微服務(wù)

2023-02-23 07:55:41

點(diǎn)贊
收藏

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