寫(xiě)入高可用是阿里云Elasticsearch團(tuán)隊(duì)為提升集群寫(xiě)入穩(wěn)定性而引入的新特性。即通過(guò)異步寫(xiě)入高可用架構(gòu)實(shí)現(xiàn)讀寫(xiě)分離,以保證在高并發(fā)寫(xiě)入情況下集群的穩(wěn)定性。同時(shí)寫(xiě)入高可用特性還加入了服務(wù)代理和消息隊(duì)列等組件。本文介紹寫(xiě)入高可用特性的原理和使用方法。
背景信息
- 數(shù)據(jù)高可用:當(dāng)集群宕機(jī)時(shí),數(shù)據(jù)也能正常寫(xiě)入消息隊(duì)列中,待集群恢復(fù)后回追數(shù)據(jù)來(lái)保證數(shù)據(jù)不丟失。
- 數(shù)據(jù)緩沖:當(dāng)數(shù)據(jù)流量峰值到來(lái)時(shí),數(shù)據(jù)會(huì)寫(xiě)入消息隊(duì)列中緩沖,避免大流量將集群壓垮;數(shù)據(jù)緩沖后將進(jìn)行批量發(fā)送,避免小批次數(shù)據(jù)頻繁寫(xiě)入集群,從而提升了CPU使用率和寫(xiě)入性能。
- 數(shù)據(jù)回放:當(dāng)集群丟失部分?jǐn)?shù)據(jù)時(shí),可通過(guò)數(shù)據(jù)回放恢復(fù)丟失的數(shù)據(jù)。
- 流量控制:限制數(shù)據(jù)流量,避免在異常情況下,過(guò)大的流量導(dǎo)致集群服務(wù)不可用。
前提條件
創(chuàng)建阿里云Elasticsearch實(shí)例,具體操作請(qǐng)參見(jiàn)創(chuàng)建阿里云Elasticsearch實(shí)例。創(chuàng)建的實(shí)例需同時(shí)滿足以下條件:
- 版本為6.7.0
- 數(shù)據(jù)節(jié)點(diǎn)規(guī)格不低于2核4 GB
使用限制
寫(xiě)入高可用特性僅支持2021年11月之前在華北2(北京)、華東2(上海)、華東1(杭州)和華南1(深圳)地域創(chuàng)建的實(shí)例,不符合要求的實(shí)例建議使用Indexing Service特性,詳細(xì)信息請(qǐng)參見(jiàn)基于Indexing Service實(shí)現(xiàn)數(shù)據(jù)流管理。
異步寫(xiě)入和同步寫(xiě)入模式
- 異步寫(xiě)入模式
開(kāi)啟寫(xiě)入高可用的集群,采用異步寫(xiě)入模式。客戶端請(qǐng)求經(jīng)過(guò)代理層分發(fā),將查詢請(qǐng)求直接轉(zhuǎn)發(fā)給Elasticsearch,獲取查詢結(jié)果返回;寫(xiě)入請(qǐng)求將經(jīng)過(guò)異步數(shù)據(jù)處理組件(包含消息隊(duì)列),再將數(shù)據(jù)實(shí)時(shí)寫(xiě)入Elasticsearch,來(lái)提高Elasticsearch的寫(xiě)入性能及穩(wěn)定性。
- 同步寫(xiě)入模式
未開(kāi)啟寫(xiě)入高可用的集群,默認(rèn)采用同步寫(xiě)入模式。即查詢和寫(xiě)入請(qǐng)求均直接由代理服務(wù)轉(zhuǎn)發(fā)給Elasticsearch。當(dāng)異步寫(xiě)入模式發(fā)生錯(cuò)誤時(shí),阿里云Elasticsearch支持臨時(shí)將異步模式轉(zhuǎn)換為同步模式,轉(zhuǎn)換后,寫(xiě)入請(qǐng)求將直接由代理服務(wù)轉(zhuǎn)發(fā)給Elasticsearch,而不會(huì)存儲(chǔ)到消息隊(duì)列中,以確保數(shù)據(jù)寫(xiě)入快速恢復(fù)。
開(kāi)啟寫(xiě)入高可用
查看異步寫(xiě)入日志
開(kāi)啟寫(xiě)入高可用后,您可以在寫(xiě)入高可用區(qū)域,單擊查看異步寫(xiě)入日志,查看寫(xiě)入高可用特性在異步模式下生成的日志。
臨時(shí)開(kāi)啟同步寫(xiě)入
當(dāng)異步模式發(fā)生錯(cuò)誤時(shí),您可以在寫(xiě)入高可用區(qū)域,打開(kāi)臨時(shí)開(kāi)啟同步寫(xiě)入開(kāi)關(guān),將異步模式臨時(shí)轉(zhuǎn)換為同步模式,快速恢復(fù)數(shù)據(jù)寫(xiě)入。
當(dāng)異步模式恢復(fù)正常后,您可以關(guān)閉臨時(shí)開(kāi)啟同步寫(xiě)入開(kāi)關(guān),快速恢復(fù)異步寫(xiě)入模式。
關(guān)閉寫(xiě)入高可用
注意 建議在業(yè)務(wù)低峰期關(guān)閉寫(xiě)入高可用。因?yàn)楫?dāng)集群中存在數(shù)據(jù)頻繁更新的場(chǎng)景時(shí),可能會(huì)發(fā)生數(shù)據(jù)亂序問(wèn)題(概率較小)。