mongodb分片集群搭建 es分片和副本的作用?
es分片和副本的作用?我們知道在ES中保存數(shù)據(jù)時(shí)有主分區(qū)和副本分區(qū),那么副本分區(qū)的功能是什么?1. 作為備份,防止主分區(qū)崩潰2。共享查詢請(qǐng)求,請(qǐng)求將均勻分布在主分區(qū)和副本分區(qū)之間第一點(diǎn):角色切換是如何
es分片和副本的作用?
我們知道在ES中保存數(shù)據(jù)時(shí)有主分區(qū)和副本分區(qū),那么副本分區(qū)的功能是什么?
1. 作為備份,防止主分區(qū)崩潰
2。共享查詢請(qǐng)求,請(qǐng)求將均勻分布在主分區(qū)和副本分區(qū)之間
第一點(diǎn):角色切換是如何在主副本之前發(fā)生的?
當(dāng)主分區(qū)不可用時(shí),es將再次投票將最新的副本分區(qū)提升到主分區(qū)的狀態(tài)。在這里,ES的主節(jié)點(diǎn)實(shí)現(xiàn)了主副本選擇的邏輯。事實(shí)上,為什么不像卡夫卡那樣直接使用ZK來(lái)切換主副本,而不是自己實(shí)現(xiàn)呢?第二,讓我們回答這個(gè)問(wèn)題一個(gè)問(wèn)題:兩個(gè)連續(xù)的es查詢請(qǐng)求能得到不同的結(jié)果嗎?
答案是可能的,因?yàn)橹鞣謪^(qū)的數(shù)據(jù)和副本分區(qū)的數(shù)據(jù)不一定相同。與主從數(shù)據(jù)庫(kù)類似,從數(shù)據(jù)庫(kù)的數(shù)據(jù)不一定與主數(shù)據(jù)庫(kù)相同
Mongo數(shù)據(jù)庫(kù)本身介于redis內(nèi)存數(shù)據(jù)庫(kù)和MySQL數(shù)據(jù)庫(kù)之間。
以下重點(diǎn)介紹Mongo的優(yōu)勢(shì)。
Mongo V redis,
1:redis受內(nèi)存限制,不能存儲(chǔ)海量數(shù)據(jù);Mongo可以存儲(chǔ)海量數(shù)據(jù)。
2:Redis只支持簡(jiǎn)單的string、hash、list、set和Zset數(shù)據(jù)結(jié)構(gòu),Mongo支持文檔類型的數(shù)據(jù)結(jié)構(gòu),可以說(shuō)是JSON字符串。這個(gè)數(shù)據(jù)結(jié)構(gòu)是多么的靈活和方便,我不需要過(guò)多的介紹。
3:redis能提供復(fù)雜的查詢嗎?蒙哥笑了笑,什么也沒(méi)說(shuō)。
4:redis是否有內(nèi)置的數(shù)據(jù)分析功能(MapReduce)?
讓我們看看Mongo V MySQL
2:Mongo的插入速度比MySQL快。
3:Mongo可以輕松分發(fā)和擴(kuò)展,而無(wú)需停機(jī)或更改應(yīng)用程序。
事實(shí)上,它們各有優(yōu)缺點(diǎn),對(duì)應(yīng)不同的數(shù)據(jù)庫(kù)應(yīng)用場(chǎng)景。
我什么時(shí)候需要Mongo?
Mongo實(shí)際上彌補(bǔ)了redis和mysql的不足。在爬蟲程序中,個(gè)人經(jīng)常使用Mongo來(lái)保存被爬網(wǎng)的數(shù)據(jù),而redis則保存要爬網(wǎng)的鏈接,并用于網(wǎng)頁(yè)重復(fù)數(shù)據(jù)消除。