天天看點

【MongoDB訓練營】第五課:ChangeStream使用及原理介紹 答疑彙總

1.shardkey唯一值+hash的 資料是不是會更好的均勻分布?

答:hash可以實作均與分布,舉個例子,我們生産中會對已時間分區的日志進行二級或者混合分區,即以天|月作為一級分區,在以hash作為二級分區。

2.mongos 有預設的 hash 函數嗎?是什麼?還是可以由使用者自定義?

答:mongodb 不可以自定義hash函數。

3.是不是隻有分片才能用mongos?

答:隻有分片shard叢集才可以使用mongos

4.MongoDB 配置檔案 能分享下麼 學習參考

答:mongodb配置參數可以參考官網說明。

5.Change stream 斷點續傳如何解決oplog被覆寫的問題。change stream消息是推送還是基于mongoclient的拉取?使用mongoclient 時是長連接配接還是短連結?

答:斷點續傳不能解決op log被覆寫的問題,老師解釋了兩種op log被覆寫的可能原因:

一是各種原因導緻的消費速度趕不上生産速度,

二是短時間内産生很多和我要抽取的目标不相關的日志

change stream是長連接配接。

6.同城異地的複制集,如何保證同步?

答:複制集保證同步 primary-secondary 通過拉取回放op log實作資料同步

change stream也可以實作這個功能,但是原理不同。

7.Change Stream 和觸發器的差別是?如果有個場景,比如物流狀态變化,我們怎麼對接上?

答:從應用層面 change stream和觸發器是一個概念,隻能說是實作解決同一問題的兩個思路,但是實作原理上這根本就沒有相關性。

8.change stream對系統性能影響幾何?

答: 對系統性能影響開銷取決于你系統自身的負載如何,目前是單線程的操作,主要開銷是在解析上,綜合來看,影響是比較小的。