黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 常見問題 資深大廠總結(jié)出的Java中間件相關(guān)面試題

資深大廠總結(jié)出的Java中間件相關(guān)面試題

更新時(shí)間:2023-02-16 16:05:28 來源:動力節(jié)點(diǎn) 瀏覽1478次

如今的系統(tǒng)數(shù)據(jù)越來越多,越來越復(fù)雜,系統(tǒng)之間的交互也變得格外重要,而消息中間件在其中起到了中間橋梁的作用,因此,大家在面試Java相關(guān)崗位的時(shí)候,消息中間件的相關(guān)問題問的格外的多。今天小編整理的這套面試題,希望能夠幫助到大家,早做準(zhǔn)備,不至于在面試時(shí)被面試官打的措手不及:

java中間件相關(guān)面試題

1. ZooKeeper 是什么?

ZooKeeper 是一個(gè)開放源碼的分布式協(xié)調(diào)服務(wù),它是集群的管理者,監(jiān)視著集群中各個(gè)節(jié)點(diǎn)的狀態(tài)根 據(jù)節(jié)點(diǎn)提交的反饋進(jìn)行下一步合理操作。最終,將簡單易用的接口和性能高效、功能穩(wěn)定的系統(tǒng)提供給用戶。

分布式應(yīng)用程序可以基于 Zookeeper 實(shí)現(xiàn)諸如數(shù)據(jù)發(fā)布/訂閱、負(fù)載均衡、命名服務(wù)、分布式協(xié)調(diào)/通知、集群管理、Master 選舉、分布式鎖和分布式隊(duì)列等功能。

Zookeeper 保證了如下分布式一致性特性:

(1)順序一致性

(2)原子性

(3)單一視圖

(4)可靠性

(5)實(shí)時(shí)性(最終一致性)

客戶端的讀請求可以被集群中的任意一臺機(jī)器處理,如果讀請求在節(jié)點(diǎn)上注冊了監(jiān)聽器,這個(gè)監(jiān)聽器也 是由所連接的 zookeeper 機(jī)器來處理。對于寫請求,這些請求會同時(shí)發(fā)給其他 zookeeper 機(jī)器并且達(dá)成一致后,請求才會返回成功。因此,隨著 zookeeper 的集群機(jī)器增多,讀請求的吞吐會提高但是寫 請求的吞吐會下降。

有序性是 zookeeper 中非常重要的一個(gè)特性,所有的更新都是全局有序的,每個(gè)更新都有一個(gè)唯一的時(shí)間戳,這個(gè)時(shí)間戳稱為 zxid(Zookeeper Transaction Id)。而讀請求只會相對于更新有序,也就是 讀請求的返回結(jié)果中會帶有這個(gè)zookeeper 最新的 zxid。

2. ZooKeeper 提供了什么?

(1)文件系統(tǒng)

(2)通知機(jī)制

3.Zookeeper 文件系統(tǒng)

Zookeeper 提供一個(gè)多層級的節(jié)點(diǎn)命名空間(節(jié)點(diǎn)稱為 znode)。與文件系統(tǒng)不同的是,這些節(jié)點(diǎn)都可以設(shè)置關(guān)聯(lián)的數(shù)據(jù),而文件系統(tǒng)中只有文件節(jié)點(diǎn)可以存放數(shù)據(jù)而目錄節(jié)點(diǎn)不行。 Zookeeper 為了保證高吞吐和低延遲,在內(nèi)存中維護(hù)了這個(gè)樹狀的目錄結(jié)構(gòu),這種特性使得Zookeeper 不能用于存放大量的數(shù)據(jù),每個(gè)節(jié)點(diǎn)的存放數(shù)據(jù)上限為1M。

4. ZAB 協(xié)議?

ZAB 協(xié)議是為分布式協(xié)調(diào)服務(wù) Zookeeper 專門設(shè)計(jì)的一種支持崩潰恢復(fù)的原子廣播協(xié)議。 ZAB 協(xié)議包括兩種基本的模式:崩潰恢復(fù)和消息廣播。 當(dāng)整個(gè) zookeeper 集群剛剛啟動或者 Leader 服務(wù)器宕機(jī)、重啟或者網(wǎng)絡(luò)故障導(dǎo)致不存在過半的服務(wù)器 與 Leader 服務(wù)器保持正常通信時(shí),所有進(jìn)程(服務(wù)器)進(jìn)入崩潰恢復(fù)模式,首先選舉產(chǎn)生新的 Leader服務(wù)器,然后集群中 Follower 服務(wù)器開始與新的 Leader 服務(wù)器進(jìn)行數(shù)據(jù)同步,當(dāng)集群中超過半數(shù)機(jī)器與該 Leader服務(wù)器完成數(shù)據(jù)同步之后,退出恢復(fù)模式進(jìn)入消息廣播模式,Leader 服務(wù)器開始接收客戶端的事務(wù)請求生成事物提案來進(jìn)行事務(wù)請求處理。

5. 四種類型的數(shù)據(jù)節(jié)點(diǎn) Znode

(1)PERSISTENT-持久節(jié)點(diǎn)

除非手動刪除,否則節(jié)點(diǎn)一直存在于 Zookeeper 上

(2)EPHEMERAL-臨時(shí)節(jié)點(diǎn)

臨時(shí)節(jié)點(diǎn)的生命周期與客戶端會話綁定,一旦客戶端會話失效(客戶端與zookeeper 連接斷開不一定會話失效),那么這個(gè)客戶端創(chuàng)建的所有臨時(shí)節(jié)點(diǎn)都會被移除。

(3)PERSISTENT_SEQUENTIAL-持久順序節(jié)點(diǎn)

基本特性同持久節(jié)點(diǎn),只是增加了順序?qū)傩裕?jié)點(diǎn)名后邊會追加一個(gè)由父節(jié)點(diǎn)維護(hù)的自增整型數(shù)字。

(4)EPHEMERAL_SEQUENTIAL-臨時(shí)順序節(jié)點(diǎn)

基本特性同臨時(shí)節(jié)點(diǎn),增加了順序?qū)傩裕?jié)點(diǎn)名后邊會追加一個(gè)由父節(jié)點(diǎn)維護(hù)的自增整型數(shù)字。

6. Zookeeper Watcher 機(jī)制 -- 數(shù)據(jù)變更通知

Zookeeper 允許客戶端向服務(wù)端的某個(gè) Znode 注冊一個(gè) Watcher 監(jiān)聽,當(dāng)服務(wù)端的一些指定事件觸發(fā)了這個(gè) Watcher,服務(wù)端會向指定客戶端發(fā)送一個(gè)事件通知來實(shí)現(xiàn)分布式的通知功能,然后客戶端根據(jù)Watcher 通知狀態(tài)和事件類型做出業(yè)務(wù)上的改變。

工作機(jī)制:

(1)客戶端注冊 watcher

(2)服務(wù)端處理 watcher

(3)客戶端回調(diào) watcher

Watcher 特性總結(jié):

(1)一次性無論是服務(wù)端還是客戶端,一旦一個(gè) Watcher 被 觸 發(fā) ,Zookeeper 都會將其從相應(yīng)的存儲中移除。這樣的設(shè)計(jì)有效的減輕了服務(wù)端的壓力,不然對于更新非常頻繁的節(jié)點(diǎn),服務(wù)端會不斷的向客戶端發(fā)送事件通知,無論對于網(wǎng)絡(luò)還是服務(wù)端的壓力都非常大。

(2)客戶端串行執(zhí)行

客戶端 Watcher 回調(diào)的過程是一個(gè)串行同步的過程。

(3)輕量

3.1、Watcher 通知非常簡單,只會告訴客戶端發(fā)生了事件,而不會說明事件的具體內(nèi)容。

3.2、客戶端向服務(wù)端注冊 Watcher 的時(shí)候,并不會把客戶端真實(shí)的 Watcher 對象實(shí)體傳遞到服務(wù)端,僅僅是在客戶端請求中使用 boolean 類型屬性進(jìn)行了標(biāo)記。

(4)watcher event 異步發(fā)送 watcher 的通知事件從 server 發(fā)送到 client 是異步的,這就存在一個(gè)問題,不同的客戶端和服務(wù)器之間通過 socket 進(jìn)行通信,由于網(wǎng)絡(luò)延遲或其他因素導(dǎo)致客戶端在不通的時(shí)刻監(jiān)聽到事件,由于 Zookeeper 本身提供了 ordering guarantee,即客戶端監(jiān)聽事件后,才會感知它所監(jiān)視 znode發(fā)生了變化。所以我們使用 Zookeeper 不能期望能夠監(jiān)控到節(jié)點(diǎn)每次的變化。Zookeeper 只能保證最終的一致性,而無法保證強(qiáng)一致性。

(5)注冊 watcher getData、exists、getChildren

(6)觸發(fā) watcher create、delete、setData

(7)當(dāng)一個(gè)客戶端連接到一個(gè)新的服務(wù)器上時(shí),watch 將會被以任意會話事件觸發(fā)。當(dāng)與一個(gè)服務(wù)器失去連接的時(shí)候,是無法接收到 watch 的。而當(dāng) client 重新連接時(shí),如果需要的話,所有先前注冊過的 watch,都會被重新注冊。通常這是完全透明的。只有在一個(gè)特殊情況下,watch 可能會丟失:對于一個(gè)未創(chuàng)建的 znode的 exist watch,如果在客戶端斷開連接期間被創(chuàng)建了,并且隨后在客戶端連接上之前又刪除了,這種情況下,這個(gè) watch 事件可能會被丟失。

以上就是“資深大廠總結(jié)出的Java中間件相關(guān)面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動力節(jié)點(diǎn)Java官網(wǎng)。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 中文在线免费看视频 | 亚洲成人午夜影院 | 国产又色又爽又黄 | 在线免费观看一级毛片 | 欧美精品一区在线看 | 国产特级毛片aaaaaaa高清 | 一级毛片成人免费看a | 99久久99视频 | 欧美一级日韩一级亚洲一级va | 91麻豆传传媒波多野衣久久看 | www青青草| 波多野结衣视频一区二区 | 看全色黄大色黄女片做 | 国产免费怕怕免费视频观看 | 一级黄色免费网站 | 国内精品小视频在线 | 天天操天| 国产自愉怕一区二区三区 | 国产成人综合久久精品红 | 女性特黄一级毛片 | 国产又黄又爽又猛的免费视频播放 | 国产成人综合高清在线观看 | 日本不卡一区二区三区在线观看 | 国产欧美日韩成人 | 中国在线播放精品区 | 免费国产成人高清在线观看视频 | 亚洲国产欧美日韩第一香蕉 | a在线视频 | 亚洲美女高清aⅴ视频免费 亚洲美女福利 | 2048国产精品原创综合在线 | 国产高清专区 | 成人免费大片黄在线观看com | 在线观看亚洲免费视频 | 干一干操一操 | 一本一道dvd在线观看免费视频 | 欧美xxxxx性开放 | 一级女性全黄久久生活片免费 | 国产制服丝袜 | jk制服喷水 | 久久黄色网 | 涩涩色视频在线播放 |