中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Spring Cloud 微服務(wù)框架技術(shù)標(biāo)準(zhǔn)分析
1 為什么微服務(wù)架構(gòu)需要Spring Cloud
簡單來說,服務(wù)化的核心就是將傳統(tǒng)的一站式應(yīng)用根據(jù)業(yè)務(wù)拆分成一個一個的服務(wù),而微服務(wù)在這個基礎(chǔ)上要更徹底地去耦合(不再共享DB、KV,去掉重量級ESB),并且強調(diào)DevOps和快速演化。這就要求我們必須采用與一站式時代、泛SOA時代不同的技術(shù)棧,而spring Cloud就是其中的佼佼者。
DevOps是英文Development和Operations的合體,他要求開發(fā)、測試、運維進行一體化的合作,進行更小、更頻繁、更自動化的應(yīng)用發(fā)布,以及圍繞應(yīng)用架構(gòu)來構(gòu)建基礎(chǔ)設(shè)施的架構(gòu)。這就要求應(yīng)用充分的內(nèi)聚,也方便運維和管理。這個理念與微服務(wù)理念不謀而合。
接下來我們從服務(wù)化架構(gòu)演進的角度來看看為什么Spring Cloud更適應(yīng)微服務(wù)架構(gòu)。
1.1 從使用nginx說起
最初的服務(wù)化解決方案是給提供相同服務(wù)提供一個統(tǒng)一的域名,然后服務(wù)調(diào)用者向這個域名發(fā)送HTTP請求,由Nginx負責(zé)請求的分發(fā)和跳轉(zhuǎn)。
這種架構(gòu)存在很多問題:
Nginx作為中間層,在配置文件中耦合了服務(wù)調(diào)用的邏輯,這削弱了微服務(wù)的完整性,也使得Nginx在一定程度上變成了一個重量級的ESB。
服務(wù)的信息分散在各個系統(tǒng),無法統(tǒng)一管理和維護。每一次的服務(wù)調(diào)用都是一次嘗試,服務(wù)消費者并不知道有哪些實例在給他們提供服務(wù)。這不符合DevOps的理念。
無法直觀的看到服務(wù)提供者和服務(wù)消費者當(dāng)前的運行狀況和通信頻率。這也不符合DevOps的理念。
消費者的失敗重發(fā),負載均衡等都沒有統(tǒng)一策略,這加大了開發(fā)每個服務(wù)的難度,不利于快速演化。
為了解決上面的問題,我們需要一個現(xiàn)成的中心組件對服務(wù)進行整合,將每個服務(wù)的信息匯總,包括服務(wù)的組件名稱、地址、數(shù)量等。服務(wù)的調(diào)用方在請求某項服務(wù)時首先通過中心組件獲取提供這項服務(wù)的實例的信息(IP、端口等),再通過默認(rèn)或自定義的策略選擇該服務(wù)的某一提供者直接進行訪問。所以,我們引入了Dubbo。
1.2 基于Dubbo實現(xiàn)微服務(wù)
Dubbo是阿里開源的一個SOA服務(wù)治理解決方案,文檔豐富,在國內(nèi)的使用度非常高。
使用Dubbo構(gòu)建的微服務(wù),已經(jīng)可以比較好地解決上面提到的問題:
調(diào)用中間層變成了可選組件,消費者可以直接訪問服務(wù)提供者。
服務(wù)信息被集中到Registry中,形成了服務(wù)治理的中心組件。
通過Monitor監(jiān)控系統(tǒng),可以直觀地展示服務(wù)調(diào)用的統(tǒng)計信息。
Consumer可以進行負載均衡、服務(wù)降級的選擇。
但是對于微服務(wù)架構(gòu)而言,Dubbo也并不是十全十美的:
Registry嚴(yán)重依賴第三方組件(zookeeper或者Redis),當(dāng)這些組件出現(xiàn)問題時,服務(wù)調(diào)用很快就會中斷。
DUBBO只支持RPC調(diào)用。使得服務(wù)提供方與調(diào)用方在代碼上產(chǎn)生了強依賴,服務(wù)提供者需要不斷將包含公共代碼的jar包打包出來供消費者使用。一旦打包出現(xiàn)問題,就會導(dǎo)致服務(wù)調(diào)用出錯。
最為重要的是,DUBBO現(xiàn)在已經(jīng)停止維護了,對于技術(shù)發(fā)展的新需求,需要由開發(fā)者自行拓展升級。這對于很多想要采用微服務(wù)架構(gòu)的中小軟件組織,顯然是不太合適的。
目前Github社區(qū)上有一個DUBBO的升級版,叫DUBBOX,提供了更高效的RPC序列化方式和REST調(diào)用方式。但是該項目也基本停止維護了。
1.3 新的選擇——Spring Cloud
作為新一代的服務(wù)框架,Spring Cloud提出的口號是開發(fā)“面向云環(huán)境的應(yīng)用程序”,它為微服務(wù)架構(gòu)提供了更加全面的技術(shù)支持。
結(jié)合我們一開始提到的微服務(wù)的訴求,我們把Spring Cloud與DUBBO進行一番對比:
微服務(wù)需要的功能DubboSpring Cloud
服務(wù)注冊和發(fā)現(xiàn)ZookeeperEureka
服務(wù)調(diào)用方式RPCRESTful API
斷路器有有
負載均衡有有
服務(wù)路由和過濾有有
分布式配置無有
分布式鎖無計劃開發(fā)
集群選主無有
分布式消息無有
Spring Cloud拋棄了Dubbo的RPC通信,采用的是基于HTTP的REST方式。嚴(yán)格來說,這兩種方式各有優(yōu)劣。雖然從一定程度上來說,后者犧牲了服務(wù)調(diào)用的性能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更為靈活,服務(wù)提供方和調(diào)用方的依賴只依靠一紙契約,不存在代碼級別的強依賴,這在強調(diào)快速演化的微服務(wù)環(huán)境下,顯得更加合適。
Eureka相比于zookeeper,更加適合于服務(wù)發(fā)現(xiàn)的場景,這點會在下一篇會詳細展開。
很明顯,Spring Cloud的功能比DUBBO更加強大,涵蓋面更廣,而且作為Spring的拳頭項目,它也能夠與Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring項目完美融合,這些對于微服務(wù)而言是至關(guān)重要的。前面提到,微服務(wù)背后一個重要的理念就是持續(xù)集成、快速交付,而在服務(wù)內(nèi)部使用一個統(tǒng)一的技術(shù)框架,顯然比把分散的技術(shù)組合到一起更有效率。更重要的是,相比于Dubbo,它是一個正在持續(xù)維護的、社區(qū)更加火熱的開源項目,這就保證使用它構(gòu)建的系統(tǒng),可以持續(xù)地得到開源力量的支持。
2 Spring Cloud技術(shù)概覽
下圖展示了Spring Cloud的完整技術(shù)組成:
服務(wù)治理:這是Spring Cloud的核心。目前Spring Cloud主要通過整合Netflix的相關(guān)產(chǎn)品來實現(xiàn)這方面的功能(Spring Cloud Netflix),包括用于服務(wù)注冊和發(fā)現(xiàn)的Eureka,調(diào)用斷路器Hystrix,調(diào)用端負載均衡Ribbon,Rest客戶端Feign,智能服務(wù)路由Zuul,用于監(jiān)控數(shù)據(jù)收集和展示的Spectator、Servo、Atlas,用于配置讀取的Archaius和提供Controller層Reactive封裝的RxJava。除此之外,針對
Feign和RxJava并不是Netiflix的產(chǎn)品,但是被整合到了Spring Cloud Netflix中。
對于服務(wù)的注冊和發(fā)現(xiàn),除了Eureka,Spring Cloud也整合了Consul和Zookeeper作為備選,但是因為這兩個方案在CAP理論上都遵循CP而不是AP(下一篇會詳細介紹這點),所以官方并沒有推薦使用。
分布式鏈路監(jiān)控:Spring Cloud Sleuth提供了全自動、可配置的數(shù)據(jù)埋點,以收集微服務(wù)調(diào)用鏈路上的性能數(shù)據(jù),并發(fā)送給Zipkin進行存儲、統(tǒng)計和展示。
消息組件:Spring Cloud Stream對于分布式消息的各種需求進行了抽象,包括發(fā)布訂閱、分組消費、消息分片等功能,實現(xiàn)了微服務(wù)之間的異步通信。Spring Cloud Stream也集成了第三方的RabbitMQ和Apache Kafka作為消息隊列的實現(xiàn)。而Spring Cloud Bus基于Spring Cloud Stream,主要提供了服務(wù)間的事件通信(比如刷新配置)。
配置中心:基于Spring Cloud Netflix和Spring Cloud Bus,Spring又提供了Spring Cloud Config,實現(xiàn)了配置集中管理、動態(tài)刷新的配置中心概念。配置通過Git或者簡單文件來存儲,支持加解密。
安全控制:Spring Cloud Security基于OAUTH2這個開放網(wǎng)絡(luò)的安全標(biāo)準(zhǔn),提供了微服務(wù)環(huán)境下的單點登錄、資源授權(quán)、令牌管理等功能。
命令行工具:Spring Cloud Cli提供了以命令行和腳本的方式來管理微服務(wù)及Spring Cloud組件的方式。
集群工具:Spring Cloud Cluster提供了集群選主、分布式鎖(暫未實現(xiàn))、一次性令牌(暫未實現(xiàn))等分布式集群需要的技術(shù)組件。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
微服務(wù)架構(gòu)的基礎(chǔ)框架選擇:Spring Cloud還是Dubbo?
Java 微服務(wù)框架選型(Dubbo 和 Spring Cloud?)
微服務(wù)架構(gòu)下的核心話題 (三):微服務(wù)架構(gòu)的技術(shù)選型
聊聊Dubbo(一):為何選擇Dubbo
微服務(wù)介紹(史上最全)
14|開源RPC框架如何選型?
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服