自分のアプリが 2 つの異なるデータベースと通信する必要があり、それら自体がレプリケートされます (Postgres ストリーミング レプリケーションを使用)。その理由は、すべての読み取りを 1 つのデータベースに対して行い、他のデータベースに対して書き込みを行いたいからです。
アプリケーションで休止状態を使用しています。これを達成するためのすぐに使える方法はありますか?
-ありがとう
編集:はい、私が達成しようとしていることが理にかなっているのかどうかについてコメントしてください。
自分のアプリが 2 つの異なるデータベースと通信する必要があり、それら自体がレプリケートされます (Postgres ストリーミング レプリケーションを使用)。その理由は、すべての読み取りを 1 つのデータベースに対して行い、他のデータベースに対して書き込みを行いたいからです。
アプリケーションで休止状態を使用しています。これを達成するためのすぐに使える方法はありますか?
-ありがとう
編集:はい、私が達成しようとしていることが理にかなっているのかどうかについてコメントしてください。
Hibernate はシャーディングをサポートしています。それが役立つかどうかを確認してください: http://www.hibernate.org/subprojects/shards.html
春を使用している場合は、DataSource を動的に切り替える方法があることを知っています。詳細はこちら
これは、stackoverflow からの同様の質問です。 単一のアプリケーションで NHibernate を使用して複数のデータベースを処理する
他のフォーラムディスカッションでも同じ種類の質問: http://forum.springsource.org/showthread.php?t=12665
以前は、単純に 2 つのセッション ファクトリを作成し、1 つを読み取り専用の作業チャンクに使用し、もう 1 つを読み取り/書き込み作業のチャンクに使用しました。読み取り/書き込みファクトリを構築し、構成を変更して別の接続プロバイダーを持ち、インターセプターを追加して変更の試みをトラップし、2 つ目を構築します。
このアプローチの問題の 1 つは L2 キャッシュの一貫性ですが、これは Hibernate キャッシングとレプリケートされたデータベースの両方に共通の問題です。