8

サイトへの訪問者がhtmlファイルを表示するために使用するテンプレートのセット全体とともに、ユーザーログインとユーザー管理用にセットアップされたdjangoバックエンドがあります。ただし、サイトにリアルタイム機能を追加しようとしており、2 人のユーザーがテキスト ボックスに入力して両方の画面にテキストを表示できるようにする Node.Js 内の完璧なライブラリを見つけました。2 つのバックエンドをマージすることは可能ですか?

4

3 に答える 3

16

さまざまな目的で複数のバックエンドを実行することは絶対に可能です (そして時には非常に便利です)。ただし、システムに期待される厳密さの種類、チームのメンバーなどに応じて、いくつかのワームの缶が開きます。

  • 州。セッション状態を異なるアプリ サーバー間で共有する必要があります。これを行う最も簡単な方法は、フレームワークに依存しない方法で外部セッション状態を保存することです。キー/値ストアの JSON オブジェクトをお勧めします。おそらく、JSON スキーマの恩恵を受けるでしょう。
  • ドメイン/ルーティング。ログイン Cookie を両方のアプリ サーバーで使用できるようにする必要があります。つまり、Apache/Nginx によってルーティングされる単一のドメインか、DNS 経由でルーティングされる個別のサブドメインのいずれかです。次の理由から、別のサブドメインをお勧めします
  • ウェブソケット。私は時代遅れかもしれませんが、私の知る限り、ApacheもNginxもWebSocketのプロキシをサポートしていません。つまり、それを使用したい場合は、httpサーバーをアプリプロキシとして使用する柔軟性を犠牲にし、代わりにサブドメイン。
  • 指定されていない要件。新しいタイプのコンポーネントをサポートするには、監視、ロギング、エラー通知、ビルド システム、テスト、継続的インテグレーション/デプロイ、ドキュメントなどすべてを拡張する必要があります。
  • スキル。より複雑なアプリケーション アーキテクチャを管理するために必要なスキル セットには、時間または費用を支払う必要があります。

したがって、これが必要かどうかについて非常に慎重に検討することをお勧めします。多くの時間と思考が関係している可能性があります。

更新: 実際、既存のサイトにリアルタイムを追加することを専門とする企業が次々と生まれています。名前を挙げるつもりはありませんが、ホスティング プラットフォーム (Heroku など) のアドオン マーケットプレイスで「リアルタイム」を検索すると、それらが見つかります。

更新 2 : Nginxが Websockets をサポートするようになりました

于 2012-12-10T11:06:58.830 に答える
3

それらをマージすることはできません。Reddis などのキュー システムを介して、Django から Node.Js にメッセージを送信できます。

于 2012-12-10T08:27:01.487 に答える
0

本当に 2 つのバックエンドを使用したい場合は、両方のバックエンドでサポートされているデータベースを使用できます。

私はそれをお勧めしませんが。

于 2012-12-10T10:42:12.613 に答える