EF Core2.0中提供了鏈接池ContextPool功能。以此來(lái)優(yōu)化初始化連接的效率?,F(xiàn)在有個(gè)疑問(wèn)。鏈接池中的鏈接是被隨機(jī)分配的。那么數(shù)據(jù)可能會(huì)被隨機(jī)寫到任意一臺(tái)數(shù)據(jù)服務(wù)器中。此時(shí)就需要數(shù)據(jù)服務(wù)器之間做數(shù)據(jù)同步工作。這似乎是讀寫分離或者負(fù)載分壓的解決方案,但是做讀寫分離或負(fù)載分壓一般應(yīng)該是“一主多從”的狀態(tài),可是從鏈接池中無(wú)法區(qū)分出主從狀態(tài)。似乎無(wú)法滿足普通的“一主多從”的設(shè)計(jì)另外,我印象中(如果是錯(cuò)的請(qǐng)糾正),“一主多從”的讀寫分離策略一般是采用硬件或軟件手段,讓應(yīng)用服務(wù)器可以從一個(gè)端口或者IP訪問(wèn)多個(gè)從服務(wù)器。也就是說(shuō),對(duì)于應(yīng)用服務(wù)器來(lái)說(shuō),有一個(gè)讀的地址就可以了。那我要地址池做什么?剛接觸服務(wù)集群等這方面的知識(shí),望大神指點(diǎn)。
1 回答

慕虎7371278
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
不太清楚ContextPool,僅就連接池說(shuō)下,連接池的出現(xiàn)本身就是為了緩解建立連接認(rèn)證的一系列開(kāi)銷,針對(duì)讀寫分離你可以在程序中顯式指定使用某個(gè)連接池以達(dá)到目的,也可以使用aop或者直接攔截最底層的語(yǔ)句進(jìn)行分離。
你說(shuō)的從一個(gè)端口訪問(wèn)多個(gè)地址這個(gè)是用ha proxy等方式做的,這個(gè)和連接池關(guān)系不太大,這塊建立db集群的方式很多,可以自行再搜索下。
添加回答
舉報(bào)
0/150
提交
取消