https://github.com/doocs/advanced-java
1.為什么使用消息隊(duì)列
其實(shí)就是問問你消息隊(duì)列都有哪些使用場(chǎng)景包雀,然后你項(xiàng)目里具體是什么場(chǎng)景贮竟,說說你在這個(gè)場(chǎng)景里用消息隊(duì)列是什么妨退?
為什么使用消息隊(duì)列?
消息隊(duì)列有什么優(yōu)點(diǎn)和缺點(diǎn)抒寂?
Kafka隔心、ActiveMQ、RabbitMQ竟痰、RocketMQ 都有什么區(qū)別签钩,以及適合哪些場(chǎng)景?
解耦坏快、異步铅檩、削峰。
2.如何保證消息隊(duì)列的高可用莽鸿?
Kafka 一個(gè)最基本的架構(gòu)認(rèn)識(shí):由多個(gè) broker 組成昧旨,每個(gè) broker 是一個(gè)節(jié)點(diǎn);你創(chuàng)建一個(gè) topic祥得,這個(gè) topic 可以劃分為多個(gè) partition兔沃,每個(gè) partition 可以存在于不同的 broker 上,每個(gè) partition 就放一部分?jǐn)?shù)據(jù)级及。
3.* 如何保證消息不被重復(fù)消費(fèi)乒疏?(如何保證消息消費(fèi)的冪等性)
如何保證消息的可靠性傳輸?或者說饮焦,如何處理消息丟失的問題怕吴?https://github.com/doocs/advanced-java/blob/master/docs/high-concurrency/how-to-ensure-the-reliable-transmission-of-messages.md
5.如何保證消息的順序性?
考慮存的順序和取的順序