NodeJS 内のすべてのクラスター インスタンスで同じデータ構造 (関数を含むため、JSON はオプションではありません) を共有する方法を探しています。ユーザーセッションを追跡し、ユーザーがアクセスできる機能を含む「ユーザー」と呼ばれるデータ構造があります。このデータ構造をすべてのノード プロセスで共有できるようにする必要があるか、別の設計パターンが必要です。この問題の解決策を知っている人はいますか? ありがとう
質問する
619 次
2 に答える
2
nodejs で適切な IPC (プロセス間通信) を設定するには、複数のオプションがあります。
- Redis (key-value) やMongoDB (NoSQL Document-Storage)などのドキュメント/キー値ストレージ ソリューションを使用する
- クラスタモジュールの統合された IPC 機能を使用する(
send
方法を参照)
これらのソリューションのどれが最適かは、要件とプロジェクトの設定によって異なります。最後のプロジェクトでは、両方の方法を使用することにしました。
- ジョブをトリガーし、部分的なタスクを異なる nodejs インスタンスにディスパッチするための IPC
- セッションおよび API トークンの一元管理のための Redis
Express を使用している場合は、Redis ミドルウェアconnect-redisを使用することを強くお勧めします。このセッション ミドルウェアは、高速ベースのアプリケーションの集中型セッション管理を自動的に処理します (これは、複雑な JS オブジェクトを保存し、すべてのインスタンスからそれらにアクセスできることも意味します)。
于 2013-01-13T20:43:01.200 に答える
2
これは古くて答えがあることは承知していますが、他の人にとっては別の方法に注意することが有益かもしれません. このような状況に対処するための推奨される方法は、このデータ構造とその関数を別のファイルに配置require
し、必要に応じてそれを配置することです。これにより、基本的に「コード/関数」が取り込まれ、データ自体が任意のデータ ストアに格納 (シリアル化/逆シリアル化) されます。
于 2014-02-11T15:54:35.480 に答える