dubbo經(jīng)典面試題 阿里的dubbo到底是用來干什么的?
阿里的dubbo到底是用來干什么的?阿里巴巴發(fā)布的Dubbo是一個基于Java開發(fā)的分布式RPC服務框架,主要用于各種系統(tǒng)之間的相互調用。據(jù)說Dubbo在早期不是開源的。后來,一位工程師辭掉了工作,把
阿里的dubbo到底是用來干什么的?
阿里巴巴發(fā)布的Dubbo是一個基于Java開發(fā)的分布式RPC服務框架,主要用于各種系統(tǒng)之間的相互調用。
據(jù)說Dubbo在早期不是開源的。后來,一位工程師辭掉了工作,把杜博帶了出來。因此,杜博開始進入公眾視野。隨著越來越多的用戶,它成為了開源軟件。
Dubbo是一套完整的解決方案,致力于提供高性能的RPC遠程服務調用方案和SOA服務治理方案。
基于Dubbo,可以輕松實現(xiàn)透明的遠程方法調用。我們可以像調用本地方法一樣調用遠程方法,這是一種無創(chuàng)的、低維護成本的方法。
2. 服務注冊和發(fā)現(xiàn)
Dubbo也是一個服務治理框架。所有服務均在注冊中心統(tǒng)一注冊。不需要在代碼中寫入服務提供商的地址。可隨時隨地提供線上線下服務,便于動態(tài)擴展。
3. 負載平衡
Dubbo提供了多種負載平衡策略。與硬件負載均衡相比,其實現(xiàn)成本較低。
Dubbo的缺點有哪些,用什么可以替代Dubbo?
具體缺點不清楚。畢竟,我不是專業(yè)人士。我只能簡單介紹一下:
Dubbo是一個服務框架,它使應用程序能夠通過高性能的RPC實現(xiàn)服務的輸出和輸入功能,并且可以與spring框架無縫集成。
主要核心組件:
遠程處理:網(wǎng)絡通信框架,實現(xiàn)異步同步和
請求-響應消息機制。
RPC:遠程過程調用的抽象,支持負載平衡、災難恢復和群集功能
注冊表:服務目錄框架,用于服務注冊和服務事件發(fā)布和訂閱
簡單一點,HTTP是協(xié)議,RPC是概念!RPC可以基于HTTP協(xié)議(feign)、TCP協(xié)議(netty)、RMI協(xié)議(soap)和web服務(XML-RPC)框架實現(xiàn)。在傳輸過程中,由于序列化方法的不同,也出現(xiàn)了一些框架和協(xié)議,如Dubbo中的Dubbo協(xié)議、grpc protobuf序列化協(xié)議等。實際上,它們都是基于遠程調用的概念。什么是遠程呼叫?
關鍵是RPC是遠程調用。遠程調用是客戶端通過上述協(xié)議向服務器發(fā)送接口、參數(shù)、參數(shù)類型、方法、返回值、返回值類型等(稱為方法簽名),通知服務器要調用的接口方法。這個過程就是RPC的實現(xiàn)過程!HTTP和RPC是兩碼事
!在性能方面,HTTP本身是基于TCP協(xié)議的,屬于應用層協(xié)議,所以HTTP協(xié)議本身在實現(xiàn)過程中會占用大量的資源(內存、帶寬等)。在性能方面,它肯定不如直接通過TCP實現(xiàn)的RPC協(xié)議快。不管HTTP有多優(yōu)化,它絕對沒有TCP那么快!另一方面,TCP依賴于字節(jié)碼。目前常用的是將客戶端調用的接口信息以序列化的方式發(fā)送到服務器端。序列化框架包括許多內容(Hession、protobuf、kryo等)。Kryo具有最高的序列化性能,protobuf具有序列化后最小的字節(jié)碼)。序列化后的字節(jié)碼越小,占用的帶寬越小,序列化時間越長,線程IO延遲越短,線程IO延遲越小。因此,在具體的應用層,有很多技術可以討論。您可以根據(jù)自己的硬件能力選擇相應的技術
!歡迎熱愛科技的人們來探索
微服務調用為啥用RPC框架,http不更簡單嗎?
作為一名從事編程工作十多年的老程序員,雖然從未在阿里巴巴工作過,但他在跳槽時拒絕了百度和騰訊的邀請,選擇了一家更適合自己的互聯(lián)網(wǎng)公司。他的編程水平的主要決定因素是他有一個良好的環(huán)境來培養(yǎng)他的基本技能。日前,他回答了一個問題,即哪個公司的編碼水平高還是低,對于大公司還是小公司來說都有外部因素,但主要還是自己的。他們沒有決心提高自己的編碼水平。不管外部環(huán)境有多好,都沒有多大意義。
由于阿里巴巴等大公司的全方位安排,提交代碼通常需要得到領導的批準,這樣可以在一定程度上大大提高代碼的質量。審計機制將更加嚴格,測試控制也將更加嚴格。普通的小公司在人員配備上可能會少一點,控制也會在一定程度上差一點,嚴格規(guī)范的制度可以促進程序員更深層次的提高,但實質上是他們是否想做得更好,是否想提高得更快。
事實上,說到阿里巴巴這樣的大公司,主要是人們的心態(tài)問題。他們認為大公司必須比小公司更標準化。那些經(jīng)歷過大公司的人仍然認為他們只是其中的一個螺絲釘。他們還想去小公司,讓他們玩得更徹底。小公司的人渴望大公司的待遇和標準化。就像未婚的人一樣,他們總是想進入被圍困的城市,他們羨慕未婚者的自由。其實,來回是一回事。
有一次,為了進入一家大公司,我放棄了一家中型公司的技術經(jīng)理職位。現(xiàn)在,這不值得想象。當我進入一家成熟的大公司時,我的貢獻只是滄海一粟。很難上去,真正的機會還在初創(chuàng)公司或中小企業(yè)。當然,這些東西需要親身經(jīng)歷,當你年輕充滿活力的時候,你會覺得很難欣賞。你只是覺得自己做出了正確的選擇和實踐,把真理和知識區(qū)別開來。
我希望我能幫助你。
普通公司員工的編程水平與阿里巴巴有多大差距?
Dubbo的configuration屬性提供了一種機制,使用者可以直接配置遠程接口的地址,而無需從注冊表中發(fā)現(xiàn)服務,以便使用者可以連接到指定的環(huán)境接口。這樣,消費者端解決了問題,但服務提供商端呢?B1是用戶端和服務提供商端。它提供了A1所依賴的接口。如果B1將其服務發(fā)布到注冊表