Dubbo
一、dubbo簡介
Dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的RPC實現服務的輸出和輸入功能,可以和Spring框架無縫集成。
Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。
現已發展成為Apache的頂級孵化開源項目,詳見官網:?http://dubbo.apache.org/en-us/
二、dubbo組織架構圖

官網的dubbo組織架構圖
詳細介紹
1、Registry:服務注冊與發現中心,作為服務提供者和消費者注冊與發現的中心。
2、Provider:服務提供者,在注冊中心注冊作為服務提供的一方,發布服務到服務注冊中心。
3、Consumer:服務消費者,通過注冊中心協調,訂閱可用的已注冊的服務。
4、Container:服務運行容器,獨立的容器類似于tomcat/jboss的作用,作為服務運行的容器。
5、Monitor:dubbo的監控中心,用來顯示接口暴露、注冊情況,也可以看接口的調用明細,調用時間等。
三、dubbo的優勢
- 單一應用架構,當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。此時,用于簡化增刪改查工作量的 數據訪問框架(ORM)是關鍵。
- 垂直應用架構,當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。此時,用于加速前端頁面開發的 Web框架(MVC)是關鍵。
- 分布式服務架構,當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用于提高業務復用及整合的 分布式服務框架(RPC)是關鍵。
- 流動計算架構當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基于訪問壓力實時管理集群容量,提高集群利用率。此時,用于提高機器利用率的 資源調度和治理中心(SOA)是關鍵。
SpringCloud
一、SpringCloud簡介
SpringCloud是一系列框架的有序集合。它基于SpringBoot的便利性融合了一整套實現微服務的框架并提供了服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等組件。
SpringCloud的官網:https://spring.io/projects/spring-cloud
?
二、SpringCloud組織架構
?

Spring?Cloud子項目包括:
? Spring Cloud Config:配置管理開發工具包,可以讓你把配置放到遠程服務器,目前支持本地存儲、Git以及Subversion。
? Spring Cloud Bus:事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
? Spring Cloud Netflix:針對多種Netflix組件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
? Netflix Eureka:云端負載均衡,一個基于 REST 的服務,用于定位服務,以實現云端的負載均衡和中間層服務器的故障轉移。
? Netflix Hystrix:容錯管理工具,旨在通過控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。
? Netflix Zuul:邊緣服務工具,是提供動態路由,監控,彈性,安全等的邊緣服務。
? Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能。
? Spring Cloud for Cloud Foundry:通過Oauth2協議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS云平臺。
? Spring Cloud Sleuth:日志收集工具包,封裝了Dapper,Zipkin和HTrace操作。
? Spring Cloud Data Flow:大數據操作工具,通過命令行方式操作數據流。
? Spring Cloud Security:安全工具包,為你的應用程序添加安全控制,主要是指OAuth2。
? Spring Cloud Consul:封裝了Consul操作,consul是一個服務發現與配置工具,與Docker容器可以無縫集成。
? Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服務注冊和發現。
? Spring Cloud Stream:數據流操作開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。
? Spring Cloud CLI:基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。
更多SpringCloud詳細見另一篇文章:深入理解SpringCloud與微服務構建
?
三、SpringCloud特點
1:約定優于配置
2:開箱即用、快速啟動
3:適用于各種環境
4:輕量級的組件
5:組件支持豐富,功能齊全
?
Dubbo與SpringCloud的比較
一、Dubbo與SpringCloud的核心要素比較

?
二、整體比較
1、dubbo由于是二進制的傳輸,占用帶寬會更少
2、springCloud是http協議傳輸,帶寬會比較多,同時使用http協議一般會使用JSON報文,消耗會更大
3、dubbo的開發難度較大,原因是dubbo的jar包依賴問題很多大型工程無法解決
4、springcloud的接口協議約定比較自由且松散,需要有強有力的行政措施來限制接口無序升級
5、dubbo的注冊中心可以選擇zk,redis等,springcloud的注冊中心用eureka或者Consul
?
---------------------
作者:程序大視界
來源:CSDN
原文:https://blog.csdn.net/xuri24/article/details/89283802
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件