大型互聯網架構演進過程,架構師應具有的分佈式知識,主流分佈式架構設計詳解面試
分佈式系統redis
分佈式系統是一個由硬件或軟件組件分佈在不一樣的網絡計算機上,彼此之間僅僅經過消息傳遞進行通訊和協調的系統。其擁有以下特色數據庫
(開心一笑)緩存
Zookeeper分佈式環境指揮官,Nginx高併發分流進階實戰服務器
應用場景網絡
Zookeeper的功能很強大,應用場景不少,結合我實際工做中使用Dubbo框架的狀況,Zookeeper主要是作註冊中心用。數據結構
基於Dubbo框架開發的提供者、消費者都向Zookeeper註冊本身的URL,消費者還能拿到並訂閱提供者的註冊URL,以便在後續程序的執行中去調用提供者。而提供者發生了變更,也會經過Zookeeper向訂閱的消費者發送通知。多線程
持久節點(PERSISTENT)架構
所謂持久節點,是指在節點建立後,就一直存在,直到有刪除操做來主動清除這個節點——不會由於建立該節點的客戶端會話失效而消失。併發
持久順序節點(PERSISTENT_SEQUENTIAL)
這類節點的基本特性和上面的節點類型是一致的。額外的特性是,在ZK中,每一個父節點會爲他的第一級子節點維護一份時序,會記錄每一個子節點建立的前後順序。基於這個特性,在建立子節點的時候,能夠設置這個屬性,那麼在建立節點過程當中,ZK會自動爲給定節點名加上一個數字後綴,做爲新的節點名。這個數字後綴的範圍是整型的最大值。
臨時節點(EPHEMERAL)
和持久節點不一樣的是,臨時節點的生命週期和客戶端會話綁定。也就是說,若是客戶端會話失效,那麼這個節點就會自動被清除掉。注意,這裏提到的是會話失效,而非鏈接斷開。另外,在臨時節點下面不能建立子節點。
臨時順序節點(EPHEMERAL_SEQUENTIAL)
能夠用來實現分佈式鎖
Redis高性能緩存數據庫,Memcached進階實戰,高性能緩存開發實戰,MongoDB進階實戰
(1)Memcached服務在企業集羣架構中應用場景
(2)Memcached服務在不一樣企業業務應用場景中的工做流程
(3)Memcached服務分佈式集羣如何實現?
(4)Memcached服務特色及工做原理是什麼?
(5)簡述Memcached內存管理機制原理?
(6)MySQL的delete與truncate區別?
(7)Redis常見的性能問題怎麼解決?
(8)Redis與memcached有什麼區別?
(9)Redis有哪些數據結構?
(10)Redis持久化方案區別以及優缺點?
(11)如何來維護集羣之間的關係,或者說集羣之間如何創建鏈接?
(12)在項目中緩存是如何使用的?緩存若是使用不當會形成什麼後果?
(13)redis和memcached有什麼區別?redis的線程模型是什麼?爲何單線程的redis比多線程的memcached效率要高得多?
(14)redis都有哪些數據類型?分別在哪些場景下使用比較合適?
(15)redis的過時策略都有哪些?手寫一下LRU代碼實現?
RabbitMq消息中間件,ActiveMq消息中間件,kafka百萬級吞實戰
(1)如何確保消息正確地發送至RabbitMQ?
(2) 如何確保消息接收方消費了消息?
(3) 如何避免消息重複投遞或重複消費?
(4)使用RabbitMQ有什麼好處?
(5)如何在activemq.xml裏面配置消息隊列的大小,來保證隊列不會溢出?
(6)如何保證消息隊列的高可用啊?
(7)如何保證消息不被重複消費啊(如何進行消息隊列的冪等性問題)?
(8)如何保證消息的可靠性傳輸(如何處理消息丟失的問題)?
(9)如何保證消息的順序性?
(10)如何解決消息隊列的延時以及過時失效問題?消息隊列滿了之後該怎麼處理?有幾百萬消息持續積壓幾小時,說說怎麼解決?
(11)若是讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路
(12)爲何使用消息隊列啊?消息隊列有什麼優勢和缺點啊?
(13)kafka、activemq、rabbitmq、rocketmq都有什麼優勢和缺點啊?
請說明Kafka相對傳統技術有什麼優點?
(14)在Kafka中broker的意義是什麼?
(15)Kafka服務器能接收到的最大信息是多少?
須要面試題彙總可關注個人公衆號【風平浪靜如碼】領取!
歡迎你們關注我新開通的公衆號【風平浪靜如碼】,海量Java相關文章,學習資料都會在裏面更新,整理的資料也會放在裏面。
以爲寫的還不錯的就點個贊,加個關注唄!點關注,不迷路,持續更新!!!