SpringCloud與Dubbo的比較

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的優勢

  1. 單一應用架構,當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。此時,用于簡化增刪改查工作量的 數據訪問框架(ORM)是關鍵。
  2. 垂直應用架構,當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。此時,用于加速前端頁面開發的 Web框架(MVC)是關鍵。
  3. 分布式服務架構,當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用于提高業務復用及整合的 分布式服務框架(RPC)是關鍵。
  4. 流動計算架構當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基于訪問壓力實時管理集群容量,提高集群利用率。此時,用于提高機器利用率的 資源調度和治理中心(SOA)是關鍵。

SpringCloud

一、SpringCloud簡介

SpringCloud是一系列框架的有序集合。它基于SpringBoot的便利性融合了一整套實現微服務的框架并提供了服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等組件。

SpringCloud的官網:https://spring.io/projects/spring-cloud

?

二、SpringCloud組織架構

?

簡單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博客文章一鍵轉載插件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284035.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284035.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284035.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VR 技術加上 8K 畫質! 2016 年里約奧運會亮點十足

據報道,2016 年里約奧運會將運用到 VR 技術。 最近,奧林匹克廣播服務公司(OBS)表示出對虛擬現實技術的興趣,其實用虛擬現實技術報道賽事已經不是什么新鮮的事了,之前 NBA 就這樣做過,但是將奧運…

POJ 1986 Distance Queries(LCA)

【題目鏈接】 http://poj.org/problem?id1986 【題目大意】 給出一棵樹&#xff0c;問任意兩點間距離。 【題解】 u,v之間距離為dis[u]dis[v]-2*dis[LCA(u,v)] 【代碼】 #include <cstdio> #include <algorithm> #include <cstring> using namespace std; c…

WPF 實現柱形統計圖

WPF 實現柱形統計圖WPF 實現柱形統計圖作者&#xff1a;WPFDevelopersOrg原文鏈接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用大于等于.NET40&#xff1b;Visual Studio 2022;項目使用 MIT 開源許可協議&#xff1b;避免畫線發虛DrawingContext…

Win11卸載WSL,卸載Windows子系統

雖然 Linux 發行版可以通過 Microsoft Store 安裝&#xff0c;但不能通過 Microsoft Store 卸載。 可以通過下列命令卸載。 1、查看當前環境安裝的wsl wsl --list2、注銷&#xff08;卸載&#xff09;當前安裝的Linux的Windows子系統 wsl --unregister Ubuntu3、卸載成功&#…

100億人口會挨餓嗎?人工智能迎擊全球糧食問題

給作物看病的AI、走路“長眼”的拖拉機、上帝視角的衛星數據分析——未來吃飯就靠它們了。 圖片來源&#xff1a;Blue River Technology 人類又面臨了一項危機——隨著人口不斷膨脹&#xff0c;到2050年人類總人口也許要達到100億&#xff0c;然而&#xff0c;地球卻沒有等比例…

Python學習總結15:時間模塊datetime time calendar (二)

二 、datetime模塊 1. datetime中常量 1&#xff09;datetime.MINYEAR&#xff0c;表示datetime所能表示的最小年份&#xff0c;MINYEAR 1。 2&#xff09;datetime.MAXYEAR&#xff0c;表示datetime所能表示的最大年份&#xff0c;MAXYEAR 9999。 2. datetime中的常見類 da…

switch注意事項

Day03_SHJavaTraining_4-5-2017 switch注意事項&#xff1a;①switch語句接受的數據類型  switch語句中的表達式的數據類型,是有要求的    JDK1.0 - 1.4 數據類型接受 byte short int char    JDK1.5 數據類型接受 byte short int char enum(枚舉)  …

WSL1 和 WSL2對比

從 WSL1 更新到 WSL2的主要原因包括&#xff1a; 提高文件系統性能&#xff0c;支持完全的系統調用兼容性。 WSL 2 使用最新、最強大的虛擬化技術在輕量級實用工具虛擬機 (VM) 中運行 Linux 內核。 但是&#xff0c;WSL 2 不是傳統的 VM 體驗。 ? 本指南將比較 WSL 1 和 WSL …

SkiaSharp 之 WPF 自繪 粒子花園(案例版)

此案例包含了簡單的碰撞檢測&#xff0c;圓形碰撞檢測方法&#xff0c;也可以說是五環彈球的升級版&#xff0c;具體可以根據例子參考。粒子花園這名字是案例的名字&#xff0c;效果更加具有科技感&#xff0c;很是不錯&#xff0c;搞搞做成背景特效也是不錯的選擇。Wpf 和 Ski…

xshell連接ubuntu

1.更新資料列表 sudo apt-get update2.安裝openssh-server sudo apt-get install openssh-server3.查看ssh服務是否啟動 sudo ps -e | grep ssh4.如果沒有啟動&#xff0c;啟動ssh服務 sudo service ssh start5.查看IP地址 sudo ifconfig如果出現xshell無法輸入密碼的情況…

教你從零開始搭建一款前端腳手架工具

本文系原創&#xff0c;轉載請附帶作者信息&#xff1a;Jrain Lau項目地址&#xff1a;https://github.com/jrainlau/s...前言 在實際的開發過程中&#xff0c;從零開始建立項目的結構是一件讓人頭疼的事情&#xff0c;所以各種各樣的腳手架工具應運而生。筆者使用較多的yoeman…

微信小程序 --- 頁面跳轉

第一種&#xff1a;wx.navigateTo({}); 跳轉&#xff1a; 注意&#xff1a;這種跳轉回觸發當前頁面的 onHide 方法&#xff0c;將當前頁面隱藏&#xff0c;然后顯示跳轉頁面。所以可以返回&#xff0c;返回的時候觸發 onShow方法進行顯示&#xff1a; &#xff08;項目的底部導…

Java基礎 深拷貝淺拷貝

Java基礎 深拷貝淺拷貝 非基本數據類型 需要new新空間class Student implements Cloneable{private int id;private String name;private Vector course;public Student(){try{Thread.sleep(1000);System.out.println("Student Constructor called.");}catch (Interr…

不安裝運行時運行 .NET 程序

好久沒寫文章了&#xff0c;有些同學問我公眾號是不是廢了&#xff1f;其實并沒有。其實想寫的東西很多很多&#xff0c;主要是最近公司比較忙&#xff0c;以及一些其他個人原因沒有時間來更新文章。這幾天抽空寫了一點點東西&#xff0c;證明公眾號還活著。長久以來的認知&…

一文弄懂分布式和微服務

簡單的說&#xff0c;微服務是架構設計方式&#xff0c;分布式是系統部署方式&#xff0c;兩者概念不同。 微服務 簡單來說微服務就是很小的服務&#xff0c;小到一個服務只對應一個單一的功能&#xff0c;只做一件事。這個服務可以單獨部署運行&#xff0c;服務之間可以通過R…

常見的js算法面試題收集,es6實現

1、js 統計一個字符串出現頻率最高的字母/數字 let str asdfghjklaqwertyuiopiaia; const strChar str > {let string [...str],maxValue ,obj {},max 0;string.forEach(value > {obj[value] obj[value] undefined ? 1 : obj[value] 1if (obj[value] > max)…

PHP面向對象(OOP)----分頁類

PHP面向對象(OOP)----分頁類 同驗證碼類&#xff0c;分頁也是在個人博客&#xff0c;論壇等網站中不可缺少的方式&#xff0c;通過分頁可以在一個界面展示固定條數的數據&#xff0c;而不至于將所有數據全部羅列到一起&#xff0c;實現分頁的原理其實就是對數據庫查詢輸出加了一…

JS 事件練習

QQ拖拽及狀態欄選擇 HTML 1 <!DOCTYPE html>2 <html xmlns"http://www.w3.org/1999/xhtml">3 <head>4 <title>QQ練習</title>5 <link href"css/main.css" rel"stylesheet" />6 <script src&…

Dubbo和Spring Cloud微服務架構對比

微服務架構是互聯網很熱門的話題&#xff0c;是互聯網技術發展的必然結果。它提倡將單一應用程序劃分成一組小的服務&#xff0c;服務之間互相協調、互相配合&#xff0c;為用戶提供最終價值。目錄 微服務主要的優勢 降低復雜度 可獨立部署 容錯 擴展 核心部件 總體架構 Dubbo …

《ABP Framework 極速開發》 - 教程首發

?寫在發布之前強烈建議每一位小伙伴都應該好好看看 ABP Framework 官方文檔&#xff0c;可能有很多的小伙伴跟我剛開始的感覺一樣“一看文檔深似海”&#xff0c;看完文檔之后&#xff0c;想要上手卻找不著頭緒。本套教程寫作的目的之一是為初學者提供一條相對簡潔的快速上手路…