大型互聯(lián)網(wǎng)架構(gòu)演進(jìn)過程,架構(gòu)師應(yīng)具備的分布式知識(shí),主流分布式架構(gòu)設(shè)計(jì)詳解
分布式系統(tǒng)
分布式系統(tǒng)是一個(gè)由硬件或軟件組件分布在不同的網(wǎng)絡(luò)計(jì)算機(jī)上,彼此之間僅僅通過消息傳遞進(jìn)行通信和協(xié)調(diào)的系統(tǒng)。其擁有如下特點(diǎn)
(開心一笑)
Zookeeper分布式環(huán)境指揮官,Nginx高并發(fā)分流進(jìn)階實(shí)戰(zhàn)
應(yīng)用場景
Zookeeper的功能很強(qiáng)大,應(yīng)用場景很多,結(jié)合我實(shí)際工作中使用Dubbo框架的情況,Zookeeper主要是做注冊(cè)中心用。
基于Dubbo框架開發(fā)的提供者、消費(fèi)者都向Zookeeper注冊(cè)自己的URL,消費(fèi)者還能拿到并訂閱提供者的注冊(cè)URL,以便在后續(xù)程序的執(zhí)行中去調(diào)用提供者。而提供者發(fā)生了變動(dòng),也會(huì)通過Zookeeper向訂閱的消費(fèi)者發(fā)送通知。
持久節(jié)點(diǎn)(PERSISTENT)
所謂持久節(jié)點(diǎn),是指在節(jié)點(diǎn)創(chuàng)建后,就一直存在,直到有刪除操作來主動(dòng)清除這個(gè)節(jié)點(diǎn)——不會(huì)因?yàn)閯?chuàng)建該節(jié)點(diǎn)的客戶端會(huì)話失效而消失。
持久順序節(jié)點(diǎn)(PERSISTENT_SEQUENTIAL)
這類節(jié)點(diǎn)的基本特性和上面的節(jié)點(diǎn)類型是一致的。額外的特性是,在ZK中,每個(gè)父節(jié)點(diǎn)會(huì)為他的第一級(jí)子節(jié)點(diǎn)維護(hù)一份時(shí)序,會(huì)記錄每個(gè)子節(jié)點(diǎn)創(chuàng)建的先后順序?;谶@個(gè)特性,在創(chuàng)建子節(jié)點(diǎn)的時(shí)候,可以設(shè)置這個(gè)屬性,那么在創(chuàng)建節(jié)點(diǎn)過程中,ZK會(huì)自動(dòng)為給定節(jié)點(diǎn)名加上一個(gè)數(shù)字后綴,作為新的節(jié)點(diǎn)名。這個(gè)數(shù)字后綴的范圍是整型的大值。
臨時(shí)節(jié)點(diǎn)(EPHEMERAL)
和持久節(jié)點(diǎn)不同的是,臨時(shí)節(jié)點(diǎn)的生命周期和客戶端會(huì)話綁定。也就是說,如果客戶端會(huì)話失效,那么這個(gè)節(jié)點(diǎn)就會(huì)自動(dòng)被清除掉。注意,這里提到的是會(huì)話失效,而非連接斷開。另外,在臨時(shí)節(jié)點(diǎn)下面不能創(chuàng)建子節(jié)點(diǎn)。
臨時(shí)順序節(jié)點(diǎn)(EPHEMERAL_SEQUENTIAL)
可以用來實(shí)現(xiàn)分布式鎖
Redis高性能緩存數(shù)據(jù)庫,Memcached進(jìn)階實(shí)戰(zhàn),高性能緩存開發(fā)實(shí)戰(zhàn),MongoDB進(jìn)階實(shí)戰(zhàn)
(1)Memcached服務(wù)在企業(yè)集群架構(gòu)中應(yīng)用場景
(2)Memcached服務(wù)在不同企業(yè)業(yè)務(wù)應(yīng)用場景中的工作流程
(3)Memcached服務(wù)分布式集群如何實(shí)現(xiàn)?
(4)Memcached服務(wù)特點(diǎn)及工作原理是什么?
(5)簡述Memcached內(nèi)存管理機(jī)制原理?
(6)MySQL的delete與truncate區(qū)別?
(7)Redis常見的性能問題怎么解決?
(8)Redis與memcached有什么區(qū)別?
(9)Redis有哪些數(shù)據(jù)結(jié)構(gòu)?
(10)Redis持久化方案區(qū)別以及優(yōu)缺點(diǎn)?
(11)如何來維護(hù)集群之間的關(guān)系,或者說集群之間如何建立連接?
(12)在項(xiàng)目中緩存是如何使用的?緩存如果使用不當(dāng)會(huì)造成什么后果?
(13)redis和memcached有什么區(qū)別?redis的線程模型是什么?為什么單線程的redis比多線程的memcached效率要高得多?
(14)redis都有哪些數(shù)據(jù)類型?分別在哪些場景下使用比較合適?
(15)redis的過期策略都有哪些?手寫一下LRU代碼實(shí)現(xiàn)?
RabbitMq消息中間件,ActiveMq消息中間件,kafka百萬級(jí)吞實(shí)戰(zhàn)
(1)如何確保消息正確地發(fā)送至RabbitMQ?
(2) 如何確保消息接收方消費(fèi)了消息?
(3) 如何避免消息重復(fù)投遞或重復(fù)消費(fèi)?
(4)使用RabbitMQ有什么好處?
(5)如何在activemq.xml里面配置消息隊(duì)列的大小,來保證隊(duì)列不會(huì)溢出?
(6)如何保證消息隊(duì)列的高可用?。?/p>
(7)如何保證消息不被重復(fù)消費(fèi)?。ㄈ绾芜M(jìn)行消息隊(duì)列的冪等性問題)?
(8)如何保證消息的可靠性傳輸(如何處理消息丟失的問題)?
(9)如何保證消息的順序性?
(10)如何解決消息隊(duì)列的延時(shí)以及過期失效問題?消息隊(duì)列滿了以后該怎么處理?有幾百萬消息持續(xù)積壓幾小時(shí),說說怎么解決?
(11)如果讓你寫一個(gè)消息隊(duì)列,該如何進(jìn)行架構(gòu)設(shè)計(jì)???說一下你的思路
(12)為什么使用消息隊(duì)列啊?消息隊(duì)列有什么優(yōu)點(diǎn)和缺點(diǎn)?。?/p>
(13)kafka、activemq、rabbitmq、rocketmq都有什么優(yōu)點(diǎn)和缺點(diǎn)啊?
請(qǐng)說明Kafka相對(duì)傳統(tǒng)技術(shù)有什么優(yōu)勢(shì)?
(14)在Kafka中broker的意義是什么?
(15)Kafka服務(wù)器能接收到的大信息是多少?
需要面試題匯總可關(guān)注我的公眾號(hào)【風(fēng)平浪靜如碼】領(lǐng)??!
歡迎大家關(guān)注我新開通的公眾號(hào)【風(fēng)平浪靜如碼】,海量Java相關(guān)文章,學(xué)習(xí)資料都會(huì)在里面更新,整理的資料也會(huì)放在里面。
覺得寫的還不錯(cuò)的就點(diǎn)個(gè)贊,加個(gè)關(guān)注唄!點(diǎn)關(guān)注,不迷路,持續(xù)更新!?。?/p>
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。