EF Core2.0中提供了链接池ContextPool功能。以此来优化初始化连接的效率。现在有个疑问。链接池中的链接是被随机分配的。那么数据可能会被随机写到任意一台数据服务器中。此时就需要数据服务器之间做数据同步工作。这似乎是读写分离或者负载分压的解决方案,但是做读写分离或负载分压一般应该是“一主多从”的状态,可是从链接池中无法区分出主从状态。似乎无法满足普通的“一主多从”的设计另外,我印象中(如果是错的请纠正),“一主多从”的读写分离策略一般是采用硬件或软件手段,让应用服务器可以从一个端口或者IP访问多个从服务器。也就是说,对于应用服务器来说,有一个读的地址就可以了。那我要地址池做什么?刚接触服务集群等这方面的知识,望大神指点。
1 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
不太清楚ContextPool,仅就连接池说下,连接池的出现本身就是为了缓解建立连接认证的一系列开销,针对读写分离你可以在程序中显式指定使用某个连接池以达到目的,也可以使用aop或者直接拦截最底层的语句进行分离。
你说的从一个端口访问多个地址这个是用ha proxy等方式做的,这个和连接池关系不太大,这块建立db集群的方式很多,可以自行再搜索下。
添加回答
举报
0/150
提交
取消