我想将 NHibernate 连接到 MySQL 主从复制配置,所以我想将写入发送到主服务器,并将读取发送到主服务器和从服务器。这可能吗?我还计划有一个负载均衡器来平衡读取。(ldirectord)
问问题
1193 次
1 回答
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 次写入。然而,如果您使用一个会话工厂,那么您将进行读取和写入(假设同一个会话通过读取和写入处于活动状态,或者设置了二级缓存)。
于 2010-06-29T19:23:18.563 回答