NHibernate を MySQL マスター/スレーブ レプリケーション構成に接続したいので、書き込みをマスターに送信し、読み取りをマスターとスレーブに送信したいと考えています。これは可能ですか?また、読み取りのバランスをとるためにロードバランサーを用意することも計画しています。(ldirectord)
1193 次
1 に答える
1
内部的には、nhibernateはado.netを使用してデータソースに接続します。したがって、ado.netがこの状況をどのように処理するかを確認する必要があります。
しかし、それに加えて、これができれば何も得られないと思います。
いくつかの背景:nhibernateのオブジェクトは、1つの接続に関連付けられているセッションファクトリに関連付けられているセッションに関連付けられています。
読み取り用にIP1を備えたロードバランサーがあるとします。そして、それはIPの2と3のデータベースのバランスを取ります。そして、書き込みのためにIP2を直接ヒットします。
だからあなたは
Ip Use
1 Balancer
2 Read / Write
3 Read
接続1に関連付けられたセッションでオブジェクトを読み取る場合は、そのオブジェクトをロードしてから、保存してフラッシュし、接続2に関連付けられたセッションに書き込む必要があります。その時点で、2回の読み取りと1回の書き込みを実行しました。一方、1つのセッションファクトリを使用する場合は、読み取りと書き込みがあります(読み取りと書き込みを通じて同じセッションが有効であるか、第2レベルのキャッシュが設定されていると想定します)。
于 2010-06-29T19:23:18.563 に答える