我希望将NHibernate连接到MySQL主从复制配置,因此我希望向主服务器发送写操作,并向主服务器和从服务器发送读操作。这个是可能的吗?我还计划有一个负载均衡器来平衡读取。(ldirectord)
发布于 2010-06-30 03:23:19
在幕后,nhibernate使用ado.net连接到数据源。因此,您需要了解ado.net是如何处理这种情况的。
但另外,我认为如果你能做到这一点,你不会有任何收获。
一些背景知识: nhibernate中的对象绑定到会话,会话绑定到会话工厂,会话工厂绑定到一个连接。
假设您有一个用于读取的ip为1的负载均衡器。它平衡了ip地址2和ip地址3上的数据库,您可以直接访问ip地址2进行写操作。
所以你有
Ip Use
1 Balancer
2 Read / Write
3 Read 如果您读取的对象具有绑定到连接1的会话,则必须加载该对象,然后在绑定到连接2的会话上保存并刷新以写入。此时,您已经完成了2次读取和1次写入。然而,如果你使用一个会话工厂,那么你有一个读和一个写(假设相同的会话在读和写过程中是活动的,或者设置了二级缓存)。
https://stackoverflow.com/questions/3137213
复制相似问题