CCR的作用(Cross-Cluster Replication,跨集群復(fù)制)
- CCR功能允許用戶在不同的Elasticsearch集群之間同步索引數(shù)據(jù)。這對于實(shí)現(xiàn)跨集群復(fù)制、數(shù)據(jù)備份、災(zāi)難恢復(fù)和多數(shù)據(jù)中心部署等場景非常有用。
- CCR功能提供了實(shí)時(shí)的、異步的、可靠的跨集群數(shù)據(jù)同步,能夠有效地將變更事件從一個(gè)集群復(fù)制到另一個(gè)集群。通過CCR,用戶可以保持多個(gè)集群之間的數(shù)據(jù)一致性,并實(shí)現(xiàn)將數(shù)據(jù)從生產(chǎn)集群復(fù)制到用于查詢和分析的目標(biāo)集群。
常用的場景
1.異地容災(zāi)備份:CCR 可以將數(shù)據(jù)從一個(gè)集群復(fù)制到另一個(gè)位于不同地理位置的集群,實(shí)現(xiàn)數(shù)據(jù)的異地容災(zāi)備份。這樣,即使源集群發(fā)生故障或不可用,目標(biāo)集群仍能提供服務(wù),保證數(shù)據(jù)的可用性。
2.跨數(shù)據(jù)中心復(fù)制:當(dāng)在全球范圍內(nèi)部署 Elasticsearch 集群時(shí),CCR 可以實(shí)現(xiàn)跨不同數(shù)據(jù)中心之間的數(shù)據(jù)復(fù)制,以便在不同地理區(qū)域提供快速的訪問,減少網(wǎng)絡(luò)延遲。
3.數(shù)據(jù)分析和報(bào)告:CCR 可以將源集群中的生產(chǎn)數(shù)據(jù)復(fù)制到專門用于數(shù)據(jù)分析和報(bào)告的目標(biāo)集群中。這樣,可以在不影響生產(chǎn)環(huán)境的情況下,對數(shù)據(jù)進(jìn)行分析、數(shù)據(jù)挖掘和生成報(bào)告。
4.多數(shù)據(jù)中心協(xié)作:對于分布在多個(gè)數(shù)據(jù)中心的不同團(tuán)隊(duì)或應(yīng)用程序,CCR 可以確保他們之間的數(shù)據(jù)同步。這使得不同的團(tuán)隊(duì)或應(yīng)用程序能夠共享和協(xié)作處理數(shù)據(jù)。
5.災(zāi)難恢復(fù):CCR 在災(zāi)難恢復(fù)方面也發(fā)揮著重要作用,允許在一個(gè) Elasticsearch 集群發(fā)生完全故障時(shí),快速恢復(fù)到另一個(gè)復(fù)制的集群上,確保業(yè)務(wù)的連續(xù)性。
總體上支持單向復(fù)制,雙向復(fù)制,應(yīng)用容災(zāi)等,功能十分強(qiáng)大。
如何使用
具體參照官網(wǎng):鏈接: Use cross-cluster replication.
簡單來說就是在源端集群創(chuàng)建引導(dǎo)索引(Leader Index),在目標(biāo)集群創(chuàng)建跟隨索引(Follower Index),讓目標(biāo)集群索引訂閱源端索引并關(guān)聯(lián)源端集群信息,這樣當(dāng)源端索引發(fā)生CDC(Change Data Capture),也就是文檔的增加、修改、刪除時(shí),能快速同步到目標(biāo)端的各個(gè)索引分片上。
工作原理
1.Leader-Follower 架構(gòu):CCR 使用 Leader-Follower 架構(gòu)來實(shí)現(xiàn)數(shù)據(jù)的復(fù)制。在 CCR 中,預(yù)導(dǎo)索引(Leader Index)充當(dāng)主索引,接收所有的寫操作。而跟隨索引(Follower Index)則是從預(yù)導(dǎo)索引復(fù)制數(shù)據(jù)的副本,是只讀的。
2.復(fù)制操作:CCR 會從預(yù)導(dǎo)索引中捕獲并復(fù)制所有的索引、更新和刪除操作。這些操作會以批量的形式進(jìn)行復(fù)制,并按照同樣的順序在跟隨索引上執(zhí)行。這樣可以確保跟隨索引與預(yù)導(dǎo)索引保持一致,并保持?jǐn)?shù)據(jù)的可靠性與一致性。
3.異步復(fù)制:CCR 的數(shù)據(jù)復(fù)制是異步的,因此跟隨索引的更新可能存在一定的延遲。這個(gè)延遲取決于網(wǎng)絡(luò)延遲、索引大小和復(fù)制速度等因素。Elasticsearch 提供了監(jiān)控指標(biāo)和接口來跟蹤復(fù)制進(jìn)度和延遲,以便可視化監(jiān)控和調(diào)優(yōu)。
4.重試和沖突解決:如果復(fù)制操作在跟隨索引上失敗,CCR 會進(jìn)行重試,直到成功為止。此外,如果預(yù)導(dǎo)索引和跟隨索引之間存在沖突(如更新操作導(dǎo)致的沖突),CCR 會使用樂觀并發(fā)控制技術(shù)來解決沖突,以確保數(shù)據(jù)的一致性。
5.連接和安全性:CCR 需要在源集群和目標(biāo)集群之間建立連接。這包括配置安全密鑰、HTTPS 證書和網(wǎng)絡(luò)連接等。確保網(wǎng)絡(luò)和安全設(shè)置正確配置非常重要,以保證復(fù)制操作的順利進(jìn)行和數(shù)據(jù)的安全性。
未完待續(xù)…………文章來源地址http://www.zghlxwxcb.cn/news/detail-579573.html
源碼分析
github地址: CCR.文章來源:http://www.zghlxwxcb.cn/news/detail-579573.html
未完待續(xù)…………
到了這里,關(guān)于elasticsearch高級功能之跨集群復(fù)制CCR的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!