【dubbo】(一) dubbo是什么?

在這里插入圖片描述

??各位小伙伴們大家好,歡迎來到這個小扎扎的dubbo專欄,在這個系列專欄中我對B站尚硅谷雷神的dubbo教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛

💡dubbo知識點速覽

  • 🍹 前置知識講解
    • 🍸 spring cloud與dubbo的區別
    • 🍸 什么是分布式系統?
    • 🍸 開發架構分類
    • 🍸 RPC是什么?
  • 🍹 dubbo
    • 🍸 基本概念
    • 🍸 調用關系說明

🍹 前置知識講解

🍸 spring cloud與dubbo的區別

兩者都是現在主流的微服務框架,但卻存在不少差異:

  • 初始定位不同:SpringCloud定位為微服務架構下的一站式解決方案;Dubbo 是 SOA 時代的產物,它的關注點主要在于服務的調用和治理
  • 生態環境不同:SpringCloud依托于Spring平臺,具備更加完善的生態體系;而Dubbo一開始只是做RPC遠程調用,生態相對匱乏,現在逐漸豐富起來。
  • 調用方式:SpringCloud是采用Http協議做遠程調用,接口一般是Rest風格,比較靈活;Dubbo是采用Dubbo協議,接口一般是Java的Service接口,格式固定。但調用時采用Netty的NIO方式,性能較好
  • 組件差異比較多,例如SpringCloud注冊中心一般用Eureka,而Dubbo用的是Zookeeper

🍸 什么是分布式系統?

??所謂的分布式系統是若干獨立計算機的集合,這些計算機對于用戶來說就像單個相關系統。隨著互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分布式服務架構以及流動計算架構勢在必行,亟需一個治理系統確保架構有條不紊的演進。
dubbo發展演變
在這里插入圖片描述

🍸 開發架構分類

單一應用架構
??當網站流量很小時,只需一個應用,將所有功能都部署在一起,以減少部署節點和成本。此時,用于簡化增刪改查工作量的數據訪問框架(ORM)是關鍵。在這里插入圖片描述
??適用于小型網站,小型管理系統,將所有功能都部署到一個功能里,簡單易用。缺點: 1、性能擴展比較難 2、協同開發問題 3、不利于升級維護

垂直應用架構
??當訪問量逐漸增大,單一應用增加機器帶來的加速度越來越小,將應用拆成互不相干的幾個應用,以提升效率。此時,用于加速前端頁面開發的Web框架(MVC)是關鍵。在這里插入圖片描述
??通過切分業務來實現各個模塊獨立部署,降低了維護和部署的難度,團隊各司其職更易管理,性能擴展也更方便,更有針對性。
缺點: 公用模塊無法重復利用,開發性的浪費

分布式服務架構
??當垂直應用越來越多,應用之間交互不可避免,將核心業務抽取出來,作為獨立的服務,逐漸形成穩定的服務中心,使前端應用能更快速的響應多變的市場需求。此時,用于提高業務復用及整合的分布式服務框架(RPC)是關鍵。在這里插入圖片描述
流動計算架構
??當服務越來越多,容量的評估,小服務資源的浪費等問題逐漸顯現,此時需增加一個調度中心基于訪問壓力實時管理集群容量,提高集群利用率。此時,用于提高機器利用率的資源調度和治理中心(SOA)[ Service Oriented Architecture]是關鍵。在這里插入圖片描述

🍸 RPC是什么?

??RPC(Remote Procedure Call)是指遠程過程調用,是一種進程間通信方式,他是一種技術的思想,而不是規范。它允許程序調用另一個地址空間(通常是共享網絡的另一臺機器上)的過程或函數,而不用程序員顯式編碼這個遠程調用的細節。即程序員無論是調用本地的還是遠程的函數,本質上編寫的調用代碼基本相同。
??使用RPC進行服務調用的流程可以參考以下圖片加以理解
在這里插入圖片描述在這里插入圖片描述

🍹 dubbo

🍸 基本概念

??Apache Dubbo ( 由阿里開發后開源到Apache ) 是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現
??使用dubbo開發的項目包含以下幾個部分
在這里插入圖片描述

  • 服務提供者(Provider):暴露服務的服務提供方,服務提供者在啟動時,向注冊中心注冊自己提供的服務。
  • 服務消費者(Consumer): 調用遠程服務的服務消費方,服務消費者在啟動時,向注冊中心訂閱自己所需的服務,服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
  • 注冊中心(Registry):注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者
  • 監控中心(Monitor):服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心

🍸 調用關系說明

  • 服務容器負責啟動,加載,運行服務提供者。
  • 服務提供者在啟動時,向注冊中心注冊自己提供的服務。
  • 服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
  • 注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。
  • 服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
  • 服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

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

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

相關文章

axios安裝_Vue腳手架安裝,與基本語法(干貨)

首先,這篇Vue文章是為了下一篇我整合springbootvue前后分離的小demo,這兩天整理好會上傳哈哈1. Node.js安裝1.1 下載安裝在node.js 官網下載, 根據自己電腦系統安裝,一直點下一步即可1.2 測試安裝是否成功WindowsR打開cmd窗口&…

mysql port range_MySQL 數據庫常見調優方法及參數設置_MySQL

1. 關閉 SELinuxvim /etc/selinux/config 更改 SELINUXenforcing 為 SELINUXdisabled2. 更改 IO Schedule, 對于 SSD 硬盤無需更改echo deadline > /sys/block/sda/queue/scheduler3. 更改 ulimitvim /etc/security/limits.conf* soft nofile 65535* hard nofile 65535roo…

base64 能放數組里面么_數組:總結篇

我們做個總結吧數組理論基礎數組是非常基礎的數據結構,在面試中,考察數組的題目一般在思維上都不難,主要是考察對代碼的掌控能力也就是說,想法很簡單,但實現起來 可能就不是那么回事了。首先要知道數組在內存中的存儲方…

xampp mysql 卸載_卸載Xampp并安裝apache + mysql + php 過程

首先是卸載xampp,打開xampp-control.exe 控制面板,停止apache和mysql服務。如果你是安裝版xampp,可以到如果不是則安裝如下方法。停止服務之后。就需要卸載服務。打開cmd,用sc.exe這個Windows命令開始——運行——cmd.exe&#xf…

python判斷正確錯誤_python錯誤和異常

Python3 錯誤和異常 作為 Python 初學者,在剛學習 Python 編程時,經常會看到一些報錯信息,在前面我們沒有提及,這章節我們會專門介紹。 Python 有兩種錯誤很容易辨認:語法錯誤和異常。 Python assert(斷言&…

nodejs mysql 返回json_python向mysql中存儲JSON及Nodejs取出

雖然把JSON數據存入mysql也是比較蛋疼,但是相比使用Nodejs嵌套處理多個mysql查詢并拼接返回數據也算是沒mongo時的一個折中方案了。我使用python拼接了一個json格式的字符串,卻遇到了一些問題1,如果把json數據轉成str存入,那么nod…

17個常用經典數據可視化圖表與冷門圖表

數據可視化是創建信息圖形表示的過程。隨著可視化技術的飛速發展,可以利用強大的可視化工具選擇合適的數據可視化圖表來展示數據。以下專業人士都應該知道的一些最重要的數據可視化圖表。 常見數據可視化圖表 餅圖 餅圖是最常見和最基本的數據可視化圖表之一。餅圖…

python keyerror_盤點Python 初學者最容易犯的10大錯誤!你中招了嗎?

對于新手,初學Python時,總會遇到這樣那樣的報錯,想要弄懂Python錯誤信息的含義可能還不知道怎么做,這里列出了一些比較常見的Python報錯問題,希望對于學習Python的人能夠有些幫助。發現有很多想要學習Python卻不知道如…

mysql index sub part_mysql中的key和index 理解

mysql的key和index多少有點令人迷惑,這實際上考察對數據庫體系結構的了解的。1 key 是數據庫的物理結構,它包含兩層意義,一是約束(偏重于約束和規范數據庫的結構完整性),二是索引(輔助查詢用的)。包括primary key, unique key, fo…

【spring cloud】(六)消息總線——springcloud Bus

各位小伙伴們大家好,歡迎來到這個小扎扎的spring cloud專欄,在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Bus…

python快速排序代碼_Python實現快速排序算法

原標題:Python實現快速排序算法 Python實現快速排序算法 快速排序算法是一種基于交換的高效的排序算法,由C.R.A.Hoare于1962年提出,是一種劃分交換排序。它采用了一種分治的策略,通常稱其為分治法(Divide and conquer algorithm)。…

docker mysql 生產環境_如何部署Docker MySQL生產環境?

1 前言Docker容器原則上是短暫的,如果容器被刪除或損毀,數據或配置將丟失,所以上個章節部署的MySQL只適合于測試環境,由于生產的需求,本章將使用Docker卷機制持久保存Docker容器中創建的數據。2 最佳實踐2.1 環境配置2…

kali 切換root權限_Ubuntu 被曝嚴重漏洞:切換系統語言 + 輸入幾行命令,就能獲取 root 權限...

公眾號關注 “GitHubDaily”設為 “星標”,帶你了解技術圈內新鮮事!來自量子位無需系統密碼,就能添加新的 sudo 用戶、獲取 root 權限,事后還能刪除不留痕跡。這是 GitHub 安全研究員 Kevin Backhouse 發現的一個 Ubuntu 系統大漏…

oracle定義變量sql賦值_ORACLE獲取SQL綁定變量值的方法總結

本文總結一下ORACLE數據庫中如何獲取SQL綁定變量值的方法,在SQL優化調優過程中,經常會用到這方面的知識點。在此梳理、總結一下這方面的知識點,方面日后查找、翻閱。方法1:查詢V$SQLV$SQL視圖中的BIND_DATA字段用來存儲綁定變量的…

transition css_Transition 過渡

1:基本概念在一定時間內平滑的過渡,也就是圓滑的以動畫效果改變css的屬性值。它的過渡可以由鼠標點擊、焦點獲取或者失去、被點擊事件或對元素的改變中觸發;不能主動觸發,只能被動觸發。常用的基本屬性有:Transition-d…

jdbc mysql分頁_JDBC【數據庫連接池、DbUtils框架、分頁】

1.數據庫連接池什么是數據庫連接池簡單來說:數據庫連接池就是提供連接的。。。為什么我們要使用數據庫連接池數據庫的連接的建立和關閉是非常消耗資源的頻繁地打開、關閉連接造成系統性能低下編寫連接池編寫連接池需實現java.sql.DataSource接口創建批量的Connectio…

python讀寫文件操作_詳解Python文件讀寫操作

讀文件 打開文件(文件需要存在)#打開文件 f open("data.txt","r") #設置文件對象 print(f)#文件句柄 f.close() #關閉文件 #為了方便,避免忘記close掉這個文件對象,可以用下面這種方式替代 with open(data.t…

keyloadtool_phoenix 利用CsvBulkLoadTool 批量帶入數據并自動創建索引

需要先創建表:CREATE TABLE IF NOT EXISTS population (state CHAR(2) NOT NULL, city VARCHAR NOT NULL, population BIGINTCONSTRAINT my_pk PRIMARY KEY (state, city));在phoenix 目錄下執行hadoop jar /home/phoenix-4.6.0-HBase-1.0-bin/phoenix-4.6.0-HBase-…

【cloud Alibaba】(三)流量控制、熔斷降級(下)——Sentinel

各位小伙伴們大家好,歡迎來到這個小扎扎的spring cloud專欄,在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Sen…

python gui入門的例子_Python GUI編程之Tkinter入門之道

相信剛學習使用Python進行GUI編程的時候,肯定都會聽過Tkinter,畢竟是standard Python interface to the Tk GUI toolkit.用來寫一些小程序還是很方便的。但如果是剛接觸GUI編程的話肯定是被官方文檔搞的有些懵,畢竟還沒弄清楚套路。之前使用過…