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