2016-04-20 10 views
1

私たちはchangefeedとsocket ioでrethinkdbを使用しています。そして、それはうまく動作します。私たちのアプリでは、クライアントからの各接続(ユーザーがサイトを参照するとき)で、一定のクエリ(select * from messagesなど)でユーザーを変更フィードに登録します。 5つのブラウザインスタンスを開くと、5回の変更フィードコードが実行されます。rethinkdb changefeedに関する問い合わせ

私の質問は、内部でチェンジフィードがどのように機能するかということです。 rethnkdbサーバーへの5つのchangefeedサブスクリプションを聴くかどうか。またはサーバーはユニークなクエリを識別し、そのようなすべてのクライアント接続のために内部的に単一のチェンジ・フィードを聞いて、放送局のように動作します。

おかげ Anup

答えて

1

RethinkDBはあなたが別のクエリ上のフィードを購読している場合でも、内部changefeedメッセージを重複排除します。書き込みが行われるマシンは、サブスクライブされたクライアントを持つすべてのマシンに単一のメッセージを送信し、そのマシンはその変更を確認する必要があるすべてのクライアントにメッセージを送信します。

0

私は何をするだろうことは次のとおりです。

  • ConnectionHandlerは/非レジスタの接続/クローズ
  • ConnectionsManagerがなければならない唯一のchangeFeed上の各接続を登録し、各バックエンドサーバー上のConnectionsManagerクラスを作成しますサブスクライバ
  • ConnectionsManagerはすべてのアクティブな接続に変更をブロードキャストします

この方法では、DBとバックエンドの方が軽量です。

関連する問題