前言
現(xiàn)今時(shí)代,系統(tǒng)越來(lái)越復(fù)雜,數(shù)據(jù)來(lái)越多,系統(tǒng)間的交互也就變得越來(lái)越重要,同時(shí)也變得越來(lái)越困難。而消息中間件在其中起到了一個(gè)中間橋梁的重要作用。因此,面試中也經(jīng)常會(huì)被問(wèn)到消息中間件相關(guān)的問(wèn)題。從其使用到其原理設(shè)計(jì),都會(huì)是面試官感興趣的一個(gè)點(diǎn)。
Zookeeper
1. ZooKeeper 是什么?
2. ZooKeeper 提供了什么?
(1)文件系統(tǒng)
(2)通知機(jī)制
3.Zookeeper 文件系統(tǒng)
Zookeeper 提供一個(gè)多層級(jí)的節(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è)樹(shù)狀的目錄結(jié)構(gòu),這種特性使得Zookeeper 不能用于存放大量的數(shù)據(jù),每個(gè)節(jié)點(diǎn)的存放數(shù)據(jù)上限為1M。
4. ZAB 協(xié)議?
5. 四種類型的數(shù)據(jù)節(jié)點(diǎn) Znode
(1)PERSISTENT-持久節(jié)點(diǎn)
除非手動(dòng)刪除,否則節(jié)點(diǎn)一直存在于 Zookeeper 上
(2)EPHEMERAL-臨時(shí)節(jié)點(diǎn)
臨時(shí)節(jié)點(diǎn)的生命周期與客戶端會(huì)話綁定,一旦客戶端會(huì)話失效(客戶端與zookeeper 連接斷開(kāi)不一定會(huì)話失效),那么這個(gè)客戶端創(chuàng)建的所有臨時(shí)節(jié)點(diǎn)都會(huì)被移除。
(3)PERSISTENT_SEQUENTIAL-持久順序節(jié)點(diǎn)
基本特性同持久節(jié)點(diǎn),只是增加了順序?qū)傩裕?jié)點(diǎn)名后邊會(huì)追加一個(gè)由父節(jié)點(diǎn)維護(hù)的自增整型數(shù)字。
(4)EPHEMERAL_SEQUENTIAL-臨時(shí)順序節(jié)點(diǎn)
基本特性同臨時(shí)節(jié)點(diǎn),增加了順序?qū)傩裕?jié)點(diǎn)名后邊會(huì)追加一個(gè)由父節(jié)點(diǎn)維護(hù)的自增整型數(shù)字。
6. Zookeeper Watcher 機(jī)制 -- 數(shù)據(jù)變更通知
7. 客戶端注冊(cè) Watcher 實(shí)現(xiàn)
8. 服務(wù)端處理 Watcher 實(shí)現(xiàn)
9. 客戶端回調(diào) Watcher
10. ACL 權(quán)限控制機(jī)制
11. Chroot 特性
12. 會(huì)話管理
13. 服務(wù)器角色
14. Zookeeper 下 Server 工作狀態(tài)
15. 數(shù)據(jù)同步
16. zookeeper 是如何保證事務(wù)的順序一致性的?
17. 分布式集群中為什么會(huì)有 Master?
18. zk 節(jié)點(diǎn)宕機(jī)如何處理?
19. zookeeper 負(fù)載均衡和 nginx 負(fù)載均衡區(qū)別
20. Zookeeper 有哪幾種幾種部署模式?
21. 集群最少要幾臺(tái)機(jī)器,集群規(guī)則是怎樣的?
22. 集群支持動(dòng)態(tài)添加機(jī)器嗎?
23. Zookeeper 對(duì)節(jié)點(diǎn)的 watch 監(jiān)聽(tīng)通知是永久的嗎?為什么不是永久的?
24. Zookeeper 的 java 客戶端都有哪些?
25. chubby 是什么,和 zookeeper 比你怎么看?
26. 說(shuō)幾個(gè) zookeeper 常用的命令。
27. ZAB 和 Paxos 算法的聯(lián)系與區(qū)別?
28. Zookeeper 的典型應(yīng)用場(chǎng)景

RabbitMQ

Rocket MQ 使用排查指南

《RocketMQ技術(shù)內(nèi)幕》
第1章 閱讀源代碼前的準(zhǔn)備
第2章 RocketMQ路由中心NameServer
第3章 RocketMQ消息發(fā)送
第4章 RocketMQ消息存儲(chǔ)
第5章 RocketMQ消息消費(fèi)
第6章 消息過(guò)濾FilterServer
第7章 RocketMQ主從同步(HA)機(jī)制
第8章 RocketMQ事務(wù)消息
第9章 RocketMQ實(shí)戰(zhàn)

Kafka知識(shí)匯總
前言
Apache Kafka是一個(gè)分布式發(fā)布 - 訂閱消息系統(tǒng)和一個(gè)強(qiáng)大的隊(duì)列, 可以處理大量的數(shù)據(jù), 并使您能夠?qū)⑾囊粋€(gè)端點(diǎn)傳遞到另一個(gè)端點(diǎn). Kafka適合離線和在線消息消費(fèi). Kafka消息保留在磁盤(pán)上, 并在群集內(nèi)復(fù)制以防止數(shù)據(jù)丟失. Kafka構(gòu)建在ZooKeeper同步服務(wù)之上. 它與Apache Storm和Spark非常好地集成, 用于實(shí)時(shí)流式數(shù)據(jù)分析. Kafka 依賴于日志順序?qū)?/span>, 因此支持消息回溯和支撐高性能讀寫(xiě) 依賴 Zookeeper

該資料獲取方式:關(guān)注+點(diǎn)贊
下方掃碼關(guān)注公眾號(hào)加我微信領(lǐng)取【備注:公眾號(hào)】 免費(fèi)領(lǐng)取
程序員這個(gè)職業(yè)需要我們不斷進(jìn)步,需要我們不斷學(xué)習(xí)新的知識(shí)。
喜歡小編的文章可以點(diǎn)點(diǎn)關(guān)注哦!
小編持續(xù)為你分享最新文章 和 福利領(lǐng)取哦