NHibernate:读/写拆分

时间:2010-06-29 01:13:27

标签: mysql nhibernate load-balancing database-replication

我想将NHibernate连接到MySQL主从复制配置, 所以我想把写信发给主人,然后读到 主人和奴隶。这可能吗?我还计划有一个负载均衡器 平衡读数。 (指挥器)

1 个答案:

答案 0 :(得分:1)

引擎盖下,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次写入。然而,如果您使用一个会话工厂,那么您将进行读取和写入(假设读取和写入时相同的会话处于活动状态,或者设置了第二级缓存)。