欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java微服務和分布式的區別有哪些

謝彥文2年前38瀏覽0評論

java微服務和分布式的區別有哪些?

Java微服務和分布式之前一直說,但是對于其中的內在含義沒有深究,就一般理解的基于 Dubbo + Zookeeper 的分布式架構和基于 Spring Boot + Spring Cloud 微服務架構,基于此,之前認為使用 Dubbo 的就是分布式架構,使用 Spring Cloud 的就是微服務架構,這在傳統意義上可能說的通,但是 Dubbo 和 Spring Cloud 生態體系又能夠完美的融合,國內技術人喜歡拿 Dubbo 和 Spring Cloud 進行對比,是因為兩者都是服務治理非常優秀的開源框架。但它們兩者的出發點是不一樣的,Dubbo 關注于服務治理這塊并且以后也會繼續往這個方向去發展。Spring Cloud 關注的是微服務治理的生態。而在閱讀了部分文章之后,發現微服務是架構設計方式,分布式是系統部署方式。

分布式對應的概念是單體部署。單體(傳統web項目)比較適合小項目,其有一些優點,但它的缺點也非常明顯。特別對于互聯網公司來說:開發效率低,代碼維護難,部署不靈活,穩定性不高,擴展性不夠,無法滿足高并發情況下的業務需求。通俗點說就是對于互聯網項目,屬于一直運營中有客戶一直在使用。單體應用的缺陷就暴露出來了,比如可能會因為一個小問題,需要緊急上線,而導致整個網站需要停止,這樣的情況對客戶、業務都是影響很大的,重新部署、備份對于開發人員來說更是不好維護。分布式服務顧名思義服務是分散部署在不同的機器上的,一個服務可能負責幾個功能,是一種面向SOA架構的,服務之間也是通過 rpc 來交互或者是 webservice 來交互的。再談談分布式架構的缺點:跨進程,跨網絡的分布式系統對網絡延遲和帶寬的性能影響;高度依賴網絡狀態、任何一次遠程調用都可能失敗,隨著調用棧的增多,其可靠性受到挑戰;引入各種中間件,異步通信大大增加了功能實現的復雜度;分布式系統必然會有分布式事務的出現,這時對數據的一致性,需要在C(一致性)A(可用性)P(分區容錯性)中做出選擇;一個系統拆成了多個服務,每個服務都得配置,部署,監控,日志處理等運維成本。

而微服務是很小的服務,小到一個服務只對應一個單一的功能,只做一件事。這個服務可以單獨部署運行,服務之間可以通過 RPC 來相互交互,每個微服務都是由獨立的小團隊開發,測試,部署,上線,負責它的整個生命周期。微服務的目的是有效的拆分應用,實現敏捷開發和部署。微服務相比分布式服務來說,它的粒度更小,服務之間耦合度更低,由于每個微服務都由獨立的小團隊負責,因此它敏捷性更高,分布式服務最后都會向微服務架構演化,這是一種趨勢, 不過服務微服務化后帶來的挑戰也是顯而易見的,例如服務粒度小,數量大,后期運維將會很難。

得到的同時也意味著失去,權衡與取舍,始終是架構的魅力。特定業務場景下的特定技術選型,特定發展階段的服務架構演進,適合團隊發展和業務支撐的架構選擇需要資深的熟悉業務和技術的架構師來主導,沒有最好,只有更好,只有在不斷的發展演化中才能找到特定企業和團隊的項目風格和基礎架構。

作者:夕陽雨晴,歡迎關注我的頭條號。偶爾美文,主流Java,為你講述不一樣的碼農生活。

java分布式系統架構,java微服務和分布式的區別有哪些