我的 NodeJS 應用程式正在使用 mongo 的 ReplicaSet。我想客戶端從二級讀取資料,所以我設定了 readPreference=secondary,但是如果二級關閉,NodeJS 應用程式無法從 mongo 讀取資料。使用選項 secondaryPreferred,如果沒有可用的輔助節點,NodeJS 可以從主實體讀取資料。但是如果沒有主要可用,只有次要可用,我將無法啟動 NodeJS 應用程式。它拋出錯誤failed to connect to server [xxxx] on first connect [Error: connect ECONNREFUSED xxx.xx.xx.xx:27017
我怎么能之間的配置組合secondary和secondaryPreferred。我希望我的 NodeJS 可以啟動,即使只有一個可用的實體,不管它是主要的還是次要的。當 NodeJS 運行時,如果有一個 mongo 實體關閉,它會自動從其他實體讀取
uj5u.com熱心網友回復:
“如果沒有可用的主節點”不是副本的正常狀態。讓選舉發生,然后啟動您的應用程式。
Primary 是副本集的必需成員。所有寫入都將進行主要操作。當您連接到副本集時,驅動程式應該知道寫入的位置,即使您不打算在應用程式級別寫入。
連接后,您的應用程式可以在主服務器暫時丟失和從輔助服務器讀取的情況下幸免于難。
作為旁注 - 考慮添加仲裁器。2 節點副本集是災難的秘訣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/389734.html
