SOA、微服務(wù)休偶、RPC梁厉、分布式

1.什么是RPC遠(yuǎn)程調(diào)用?

RPC 的全稱是 Remote Procedure Call 是一種進(jìn)程間通信方式椅贱。它允許程序調(diào)用另一個(gè)地址空間(通常是共享網(wǎng)絡(luò)的另一臺機(jī)器上)的過程或函數(shù)懂算,而不用程序員顯式編碼這個(gè)遠(yuǎn)程調(diào)用的細(xì)節(jié)。即無論是調(diào)用本地接口/服務(wù)的還是遠(yuǎn)程的接口/服務(wù)庇麦,本質(zhì)上編寫的調(diào)用代碼基本相同计技。比如兩臺服務(wù)器A,B山橄,一個(gè)應(yīng)用部署在A服務(wù)器上垮媒,想要調(diào)用B服務(wù)器上應(yīng)用提供的函數(shù)或者方法,由于不在一個(gè)內(nèi)存空間航棱,不能直接調(diào)用睡雇,這時(shí)候需要通過就可以應(yīng)用RPC框架的實(shí)現(xiàn)來解決

2.什么是SOA?與SOAP區(qū)別是什么饮醇?

SOA是一種面向服務(wù)架構(gòu)它抱,是將相同業(yè)務(wù)邏輯抽取出來組成單獨(dú)服務(wù)。

SOAP是WebService面向服務(wù)協(xié)議朴艰,采用xml,因?yàn)楸容^中观蓄,現(xiàn)在不是特別流行混移。

3.什么是微服務(wù)架構(gòu)

微服務(wù)架構(gòu)師一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù)侮穿,服務(wù)之間互相

協(xié)調(diào)歌径、互相配合沒用戶提供最終價(jià)值。每個(gè)服務(wù)運(yùn)行在其獨(dú)立的進(jìn)程中亲茅,服務(wù)與服務(wù)間采用輕量級的同學(xué)機(jī)制互相溝通(通暢采用Http+restful API)回铛,每個(gè)服務(wù)都圍繞著具體業(yè)務(wù)進(jìn)行構(gòu)建,并且能夠被獨(dú)立的部署到生成環(huán)境克锣、類生存環(huán)境等茵肃。另外,應(yīng)盡量避免同一的娶耍、集中式服務(wù)管理機(jī)制免姿。

4.微服務(wù)與SOA區(qū)別

SOA實(shí)現(xiàn)微服務(wù)架構(gòu)實(shí)現(xiàn)

企業(yè)級,自頂向下開展實(shí)施團(tuán)隊(duì)級榕酒,自定向上開展實(shí)施

服務(wù)由多個(gè)子系統(tǒng)組成一個(gè)系統(tǒng)被拆分成多個(gè)服務(wù)

集成式服務(wù)(esb胚膊、ws、soap)集成方式簡單(http想鹰、rest紊婉、json)

5.RPC遠(yuǎn)程調(diào)用有哪些框架?

SpringCloud辑舷、Dubbo喻犁、Dubbox、Hessian何缓、HttpClient肢础、thrift等。

6.什么是SpringCloud

SpringCloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)的一些工具碌廓,包括配置管理传轰、服務(wù)發(fā)現(xiàn)(Eureka)、斷路器谷婆、路由慨蛙、微代理、事件總線纪挎、全局鎖期贫、決策競選、分布式會話等等异袄。它運(yùn)行環(huán)境簡單通砍,可以在開發(fā)人員的電腦上跑。另外說明spring cloud是基于Springboot的烤蜕,所以需要開發(fā)中對Springboot有一定的了解封孙,如果不了解的話可以看螞蟻課堂SpringBoot課程垢揩。

SpringCloud使用Eureka作為注冊中心,使用rest+ribbon或者feign敛瓷,斷路器Hystrix、zuul接口網(wǎng)關(guān)等斑匪。

7.什么是Dubbo呐籽?

Duubbo是一個(gè)RPC遠(yuǎn)程調(diào)用框架,分布式服務(wù)治理框架

什么是Dubbo服務(wù)治理蚀瘸?

服務(wù)與服務(wù)之間會有很多個(gè)Url狡蝶、依賴關(guān)系、負(fù)載均衡贮勃、容錯(cuò)贪惹、自動注冊服務(wù)。

8.Dubbo有哪些協(xié)議寂嘉?

默認(rèn)用的dubbo協(xié)議奏瞬、Http、RMI泉孩、Hessian

9.Dubbo整個(gè)架構(gòu)流程

分為四大模塊

生產(chǎn)者硼端、消費(fèi)者、注冊中心寓搬、監(jiān)控中心

生產(chǎn)者:提供服務(wù)

消費(fèi)者: 調(diào)用服務(wù)

注冊中心:注冊信息(redis珍昨、zk)

監(jiān)控中心:調(diào)用次數(shù)、關(guān)系依賴等句喷。

首先生產(chǎn)者將服務(wù)注冊到注冊中心(zk)镣典,使用zk持久節(jié)點(diǎn)進(jìn)行存儲,消費(fèi)訂閱zk節(jié)點(diǎn)唾琼,一旦有節(jié)點(diǎn)變更兄春,zk通過事件通知傳遞給消費(fèi)者,消費(fèi)可以調(diào)用生產(chǎn)者服務(wù)父叙。

服務(wù)與服務(wù)之間進(jìn)行調(diào)用神郊,都會在監(jiān)控中心中,存儲一個(gè)記錄趾唱。

10.Dubbox與Dubbo區(qū)別涌乳?

Dubox使用http協(xié)議+rest風(fēng)格傳入json或者xml格式進(jìn)行遠(yuǎn)程調(diào)用。

Dubbo使用Dubbo協(xié)議甜癞。

11.SpringCloud與Dubbo區(qū)別夕晓?

相同點(diǎn):

dubbo與springcloud都可以實(shí)現(xiàn)RPC遠(yuǎn)程調(diào)用。

dubbo與springcloud都可以使用分布式悠咱、微服務(wù)場景下蒸辆。

區(qū)別:

dubbo有比較強(qiáng)的背景,在國內(nèi)有一定影響力征炼。

dubbo使用zk或redis作為注冊中心

springcloud使用eureka作為注冊中心

dubbo支持多種協(xié)議,默認(rèn)使用dubbo協(xié)議躬贡。

Springcloud只能支持http協(xié)議谆奥。

Springcloud是一套完整的微服務(wù)解決方案。

Dubbo目前已經(jīng)停止更新,SpringCloud更新速度快拂玻。


12.什么是Zookeeper

Zookeeper是一個(gè)工具酸些,可以實(shí)現(xiàn)集群中的分布式協(xié)調(diào)服務(wù)。

所謂的分布式協(xié)調(diào)服務(wù)檐蚜,就是在集群的節(jié)點(diǎn)中進(jìn)行可靠的消息傳遞魄懂,來協(xié)調(diào)集群的工作。

Zookeeper之所以能夠?qū)崿F(xiàn)分布式協(xié)調(diào)服務(wù)闯第,靠的就是它能夠保證分布式數(shù)據(jù)一致性市栗。

所謂的分布式數(shù)據(jù)一致性,指的就是可以在集群中保證數(shù)據(jù)傳遞的一致性咳短。

?Zookeeper能夠提供的分布式協(xié)調(diào)服務(wù)包括:數(shù)據(jù)發(fā)布訂閱填帽、負(fù)載均衡、命名服務(wù)咙好、分布式協(xié)調(diào)/通知盲赊、集群管理、分布式鎖敷扫、分布式隊(duì)列等功能

13.Zookeeper特點(diǎn)

Zookeeper工作在集群中哀蘑,對集群提供分布式協(xié)調(diào)服務(wù),它提供的分布式協(xié)調(diào)服務(wù)具有如下的特點(diǎn):

順序一致性:從同一個(gè)客戶端發(fā)起的事務(wù)請求葵第,最終將會嚴(yán)格按照其發(fā)起順序被應(yīng)用到zookeeper中

原子性:所有事物請求的處理結(jié)果在整個(gè)集群中所有機(jī)器上的應(yīng)用情況是一致的绘迁,即,要么整個(gè)集群中所有機(jī)器都成功應(yīng)用了某一事務(wù)卒密,要么都沒有應(yīng)用缀台,一定不會出現(xiàn)集群中部分機(jī)器應(yīng)用了改事務(wù),另外一部分沒有應(yīng)用的情況哮奇。

單一視圖:無論客戶端連接的是哪個(gè)zookeeper服務(wù)器膛腐,其看到的服務(wù)端數(shù)據(jù)模型都是一致的。

可靠性:一旦服務(wù)端成功的應(yīng)用了一個(gè)事務(wù)鼎俘,并完成對客戶端的響應(yīng)哲身,那么該事務(wù)所引起的服務(wù)端狀態(tài)變更將會一直保留下來,除非有另一個(gè)事務(wù)又對其進(jìn)行了改變贸伐。

實(shí)時(shí)性:zookeeper并不是一種強(qiáng)一致性勘天,只能保證順序一致性和最終一致性,只能稱為達(dá)到了偽實(shí)時(shí)性。

14.zookeeper的數(shù)據(jù)模型

zookeepei中可以保存數(shù)據(jù)脯丝,正是利用zookeeper可以保存數(shù)據(jù)這一特點(diǎn)商膊,我們的集群通過在zookeeper里存取數(shù)據(jù)來進(jìn)行消息的傳遞。

zookeeper中保存數(shù)據(jù)的結(jié)構(gòu)非常類似于文件系統(tǒng)宠进。都是由節(jié)點(diǎn)組成的樹形結(jié)構(gòu)晕拆。不同的是文件系統(tǒng)是由文件夾和文件來組成的樹,而zookeeper中是由ZNODE來組成的樹材蹬。

每一個(gè)ZNODE里都可以存放一段數(shù)據(jù)潦匈,ZNODE下還可以掛載零個(gè)或多個(gè)子ZNODE節(jié)點(diǎn),從而組成一個(gè)樹形結(jié)構(gòu)赚导。

15.Zookeeper應(yīng)用場景

數(shù)據(jù)發(fā)布訂閱

負(fù)載均衡

命名服務(wù)

分布式協(xié)調(diào)

集群管理

配置管理

分布式隊(duì)列

16.什么是分布式鎖

簡單的理解就是:分布式鎖是一個(gè)在很多環(huán)境中非常有用的原語,它是不同的系統(tǒng)或是同一個(gè)系統(tǒng)的不同主機(jī)之間互斥操作共享資源的有效方法赤惊。

17.Zookeeper實(shí)現(xiàn)分布式鎖

分布式鎖使用zk吼旧,在zk上創(chuàng)建一個(gè)臨時(shí)節(jié)點(diǎn),使用臨時(shí)節(jié)點(diǎn)作為鎖未舟,因?yàn)楣?jié)點(diǎn)不允許重復(fù)圈暗。

如果能創(chuàng)建節(jié)點(diǎn)成功,生成訂單號裕膀,如果創(chuàng)建節(jié)點(diǎn)失敗员串,就等待。臨時(shí)節(jié)點(diǎn)zk關(guān)閉昼扛,釋放鎖寸齐,其他節(jié)點(diǎn)就可以重新生成訂單號。

19.Zookeeper與 Redis實(shí)現(xiàn)分布式鎖的區(qū)別

基于緩存實(shí)現(xiàn)分布式鎖鎖沒有失效事件抄谐,容易死鎖非阻塞式

不可重入

基于Zookeeper實(shí)現(xiàn)分布式鎖

實(shí)現(xiàn)相對簡單

可靠性高

性能較好

分布式情況下定時(shí)任務(wù)會出現(xiàn)哪些問題渺鹦?

分布式集群的情況下,怎么保證定時(shí)任務(wù)不被重復(fù)執(zhí)行

分布式定時(shí)任務(wù)解決方案

①使用zookeeper實(shí)現(xiàn)分布式鎖 缺點(diǎn)(需要創(chuàng)建臨時(shí)節(jié)點(diǎn)蛹含、和事件通知不易于擴(kuò)展)

②使用配置文件做一個(gè)開關(guān)? 缺點(diǎn)發(fā)布后毅厚,需要重啟

③數(shù)據(jù)庫唯一約束,缺點(diǎn)效率低

④使用分布式任務(wù)調(diào)度平臺

? XXLJOB

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浦箱,一起剝皮案震驚了整個(gè)濱河市吸耿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌酷窥,老刑警劉巖咽安,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蓬推,居然都是意外死亡板乙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來募逞,“玉大人蛋铆,你說我怎么就攤上這事》沤樱” “怎么了刺啦?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纠脾。 經(jīng)常有香客問我玛瘸,道長,這世上最難降的妖魔是什么苟蹈? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任糊渊,我火速辦了婚禮,結(jié)果婚禮上慧脱,老公的妹妹穿的比我還像新娘渺绒。我一直安慰自己,他們只是感情好菱鸥,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布宗兼。 她就那樣靜靜地躺著,像睡著了一般氮采。 火紅的嫁衣襯著肌膚如雪殷绍。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天鹊漠,我揣著相機(jī)與錄音主到,去河邊找鬼。 笑死躯概,一個(gè)胖子當(dāng)著我的面吹牛镰烧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播楞陷,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼怔鳖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了固蛾?” 一聲冷哼從身側(cè)響起结执,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎艾凯,沒想到半個(gè)月后献幔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趾诗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年蜡感,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹬蚁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡郑兴,死狀恐怖犀斋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情情连,我是刑警寧澤叽粹,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站却舀,受9級特大地震影響虫几,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜挽拔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一辆脸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧螃诅,春花似錦啡氢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浪箭。三九已至穗椅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奶栖,已是汗流浹背匹表。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宣鄙,地道東北人袍镀。 一個(gè)月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像冻晤,于是被迫代替她去往敵國和親苇羡。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容