2
我想將NHibernate連接到一個MySQL主從複製配置, ,所以我想發送寫入到主,並讀取 主和奴隸。這可能嗎?我也計劃讓負載平衡器 來平衡讀取。 (ldirectord)NHibernate:讀/寫拆分
我想將NHibernate連接到一個MySQL主從複製配置, ,所以我想發送寫入到主,並讀取 主和奴隸。這可能嗎?我也計劃讓負載平衡器 來平衡讀取。 (ldirectord)NHibernate:讀/寫拆分
底層,nhibernate使用ado.net連接數據源。所以你需要看看ado.net如何處理這種情況。
但是,如果你能做到這一點,我認爲你不會獲得任何收益。
一些背景: nhibernate中的對象與會話綁定,會話綁定到會話工廠,會話工廠綁定到1個連接。
比方說,你有一個負載平衡器ip 1的讀取。並且它在ip 2和3之間平衡數據庫。並且你直接用ip 2寫入。
所以,你必須
Ip Use
1 Balancer
2 Read/Write
3 Read
如果你閱讀綁連接1的會話對象,你必須加載該對象,然後保存並刷新上綁連接2.在一個會話寫點,你已經完成了2次讀取和1次寫入。而如果你使用一個會話工廠,那麼你有一個讀和一個寫(假設通過讀和寫相同的會話是活着的,或者二級緩存設置)。
謝謝,Tim。另一種方案是在一組從站上讀取負載均衡讀取,並僅爲寫入保留主節點。缺點是主硬件可能沒有得到充分利用。你認爲這會起作用嗎? – Jacko 2010-06-30 00:36:12
由於nhibernate如何閱讀才能寫,我仍然不認爲這會給你帶來什麼。二級緩存減少了一些,但是你的緩存不會在不同的會話工廠(連接字符串)之間共享,所以你仍然會有冗餘讀取。 – 2010-07-01 00:35:05
我認爲你在這裏想要的是某種數據庫集羣,無論它必須是透明的(讀取1個連接字符串)才能獲得最大的收益。 – 2010-07-01 00:38:35