1

私は現在、@ WebFaction でホストされる特定の Web サイトのフェイルオーバー サポート/冗長性に関係する、より具体的な問題に直面しています。残念ながら、DB レベルでのレプリケーションはオプションではありません。アカウントごとに独自のローカル PostgreSQL インスタンスをインストールする必要があり、とりわけパフォーマンスが心配です。だから私は、Djangoのマルチデータベース機能を使用して、すべての(共有)データベースにすべての書き込みをルーティングし、読み取りを最も近いデータベースに分散することを考えています。

私の問題は、私が読んだすべてのドキュメントが、これが不可能である可能性が最も高いことを示しているように見えることです。より正確に言うと、私が必要とするものは次のとおりです。

  • すべての書き込みを特定のデータベース セット (同じタイプ、バージョンなど) にルーティングする
  • 1 つの書き込みが失敗すると、他のすべてがロールバックされます (トランザクション)
  • すべての読み取りを最も近いデータベースにルーティングします (静的に構成できます)

これは現在、Django の multi-db サポートで可能ですか?

ヘルプ/ヒントをお寄せいただきありがとうございます...

4

1 に答える 1

1

似たようなものを探していました。私が見つけたのは:

1) XeroundクラウドDBのようなものを試してください-MySQL上に構築されており、互換性がありますが、セーブポイントをサポートしていません。(カスタム)DBエンジンでこれを無効にする必要があります。良い点は、それらがDBレベルで複製され、自動スケーラビリティとフェイルオーバーを提供することです。アプリは、DBが1つあるかのように機能します。現在、いくつかの接続の問題が発生していますが、それが私の移行を妨げています。

2) django-synchroパッケージ-アプリ層での複製を約束しているように見えますが、私はそれについていくつかの懸念があります。コードでよく使用するobjects.update()では機能しません。

于 2012-10-17T12:16:16.940 に答える