私たちは多くのアプリケーションをクラウドに移行していますが、一部のローカルハードウェアとのインターフェイスとして社内にとどまる必要があるアプリケーションもあります。SpringブートJPAスレーブキャッシュ
問題のアプリケーションはSpring Bootを使用して書かれており、時折書き込むだけでMYSQLデータベースで90%の読み取り操作を行います。社内サーバーがクラウドデータベースサーバーのレプリケーションスレーブとして機能するマスタースレーブMYSQLレプリケーションをセットアップしました。
書き込み操作をクラウドデータベースサーバーに送信する際に、すべての読み取り操作に社内データベースを使用するようにSpringブートを構成するにはどうすればよいですか。
私は、アプリケーション全体を2つの異なるデータソースを使用するように再構成できることを知っていますが、これは面白い方法かもしれません。
MariaDBからMaxScaleを使用できます。それはDBプロキシです。しかし、クエリ(INSERT/UPDATE)をクラウドに送信してスレーブを直接読み込むと、INSERTはほとんどレプリケートされませんでした。それは少し使用することができます。あなたはまた、より多くのルールを設定することができます。** SELECT/** MASTER */* FROM .... ** –
のようなマスターからも読むために、SELECTの特別なキーワードをルーティングすることもできます。私はそれを徹底的に調べます。 MaxScaleやMaster/Slaveレプリケーションでアップデートを送信してすぐにクエリを実行することは問題ですか? – schneida
それもmaxscaleの問題ではありません。マスターからスレーブへの結果を複製するのに複製が少し遅くなります。このようなクエリを特定する場合は、これをマークしてmaxscaleのルールを作成して、このクエリもマスターに行くことができます。 –