和傳統的單體架構相比,分布式多了乙個遠端服務之間的通訊,不管是 soa 還是微服務,他們本
質上都是對於業務服務的提煉和復用。那麼遠端服務之間的呼叫才是實現分布式的關鍵因素
j**a 原生 httpurlconnection是基於http協議的,支援get,post,put,delete等各種請求方式,最常用的就是get和post
httpclient 是apache common 下的子專案,可以用來提供高效的、最新的、功能豐富的支援http 協議的客戶端程式設計工具包,並且它支援 http 協議最新的版本。
okhttp是乙個當前主流的網路請求的開源框架, 用於替代httpurlconnection和apache httpclient
spring resttemplate 是 spring 提供的用於訪問 rest 服務的客戶端,resttemplate 提供了多rpc全稱為remote procedure call,即遠端過程呼叫。借助rpc可以做到像本地呼叫一樣呼叫遠種便捷訪問遠端http服務的方法,能夠大大提高客戶端的編寫效率,所以很多客戶端比如 android或者第三方服務商都是使用 resttemplate 請求 restful 服務。
程服務,是一種程序間的通訊方式. 。常見的rpc框架有一下幾種.
j**a rmi(romote method invocation)是一種基於j**a的遠端方法呼叫技術,是j**a特有的一
種rpc實現
hessian是乙個輕量級的remoting onhttp工具,使用簡單的方法提供了rmi的功能. 相比
webservice,hessian更簡單、快捷。採用的是二進位制rpc協議,因為採用的是二進位制協議,所以
它很適合於傳送二進位制資料。
dubbo是阿里巴巴公司開源的乙個高效能優秀的服務框架,使得應用可通過高效能的 rpc 實現服
務的輸出和輸入功能,可以和spring框架無縫整合。dubbo是一款高效能、輕量級的開源j**a rpc
框架,它提供了三大核心能力:面向介面的遠端方法呼叫,智慧型容錯和負載均衡,以及服務自動注
冊和發現。
grpc是由google公司開源的一款高效能的遠端過程呼叫(rpc)框架,可以在任何環境下執行。該
框架提供了負載均衡,跟蹤,智慧型監控,身份驗證等功能,可以實現系統間的高效連線。
在分布式系統中, 會有呼叫其他業務系統,導致出現跨域問題,跨域實質上是瀏覽器的一種保護處
理。如果產生了跨域,伺服器在返回結果時就會被瀏覽器攔截(注意:此時請求是可以正常發起的,只是
瀏覽器對其進行了攔截),導致響應的內容不可用. 產生跨域的幾種情況有一下:
使用httpclient內部**
使用設定響應頭允許跨域
response.setheader(「access-control-allow-origin」, 「*」); 設定響應頭允許跨域.
基於nginx搭建企業級api介面閘道器
使用zuul搭建微服務api介面閘道器
zuul是spring cloud中的微服務閘道器。閘道器: 是乙個網路整體系統中的前置門戶入口。請求首先通過閘道器,進行路徑的路由,定位到具體的服務節點上。可以使用zuul的過濾器的請求**去解決跨域問題
分布式服務呼叫
分布式服務呼叫策略 1.lvs 中間 負載均衡系統做 優點 代價低,可控性強 缺點 流量壓力大 必由之路,雞蛋不在乙個籃子裡 應用 面向c端 2.名稱服務 各呼叫方機器 自己根據策略進行負載均衡 優點 名稱服務不會直接影響功能 減少了中間的頻寬消耗 缺點 公升級較複雜 當拉起一台伺服器,需要把新的i...
python分布式架構 分布式架構
1.分布式架構 採用centos mongodb windows2012 python redis進行分布式架構搭建,mongodb的框架最核心的設計就是 mongodb和mapreduce。mongodb為海量的資料提供了儲存,則mapreduce為海量的資料提供了計算,windows2012作為...
分布式架構
cap原理 c 一致性 多節點資料的一致 a 可用性 保證服務持續可用 多節點 多型伺服器 p 分割槽容忍性 是否可將資料存到多個地方 設計不可能同時滿足cap ac 放棄分割槽容忍,物理資料庫 ap 可以短暫的容忍資料不一致 nosql資料庫 cp 放棄可用性 springcloud有一下功能 e...