作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)
1.簡(jiǎn)介
隨著互聯(lián)網(wǎng)應(yīng)用場(chǎng)景的不斷擴(kuò)張、人們對(duì)實(shí)時(shí)數(shù)據(jù)處理需求越來(lái)越強(qiáng)烈,消息隊(duì)列(MQ)系統(tǒng)也在逐漸發(fā)展壯大。Kafka 是 Apache 開(kāi)源的分布式消息系統(tǒng),它是一個(gè)分布式、高吞吐量、可擴(kuò)展且高容錯(cuò)的平臺(tái)。相對(duì)于其他 MQ 系統(tǒng)而言,Kafka 有以下優(yōu)點(diǎn):文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-716240.html
- 支持多種消息存儲(chǔ)格式,例如文本、日志、JSON、XML等;
- 可以通過(guò)分區(qū)機(jī)制實(shí)現(xiàn)橫向擴(kuò)展,可以將數(shù)據(jù)水平拆分到多個(gè)服務(wù)器上;
- 通過(guò)分片機(jī)制提供可靠的數(shù)據(jù)持久化能力;
- 提供了消費(fèi)者offset記錄功能,保證了消息的順序消費(fèi);
- 社區(qū)活躍、文檔豐富、支持良好,有大量商用案例; 不過(guò),作為一個(gè)分布式、多副本的數(shù)據(jù)存儲(chǔ)系統(tǒng),它的最大缺陷就是其易失性導(dǎo)致的性能下降、可用性問(wèn)題。為了解決這些問(wèn)題,目前業(yè)界提出了多種高可用方案,包括 Zookeeper 選舉、Raft協(xié)議、分區(qū)副本選舉等等。但由于這些高可用方案都依賴(lài)于外部組件或系統(tǒng),運(yùn)維成本較高,因此不適用于實(shí)際生產(chǎn)環(huán)境。另一方面,單個(gè)消息中間件集群中存在單點(diǎn)故障的風(fēng)險(xiǎn),因此要確保整個(gè)集群的高可用性是非常關(guān)鍵的。
Kafka 在高可用性方面的難題主要是如何確保以下四個(gè)目標(biāo):文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-716240.html
- 消息的不丟失:當(dāng)集群中的一臺(tái)服務(wù)器宕機(jī)或網(wǎng)絡(luò)中斷發(fā)生時(shí),集群應(yīng)該仍然能夠正常工作,不會(huì)影響已經(jīng)發(fā)布到 Broker 的消息。
- 服務(wù)的高可用:集群中任意多的節(jié)點(diǎn)都可以正常服務(wù)。
- 數(shù)據(jù)的一致性:集群中的所有分區(qū)的數(shù)據(jù)都是相同的,即使某些分區(qū)出現(xiàn)了數(shù)據(jù)丟失的情況也不影響整體數(shù)據(jù)的正確性。
- 節(jié)點(diǎn)的快速恢
到了這里,關(guān)于Kafka 高可用性集群部署實(shí)踐 錘子技術(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!