2016-06-14 21 views
1

私はどこにいるのですか

私は単純なnode.js twitterストリームコンシューマで、さまざまなハッシュタグを追跡しています。しばしば、これらは傾向のあるハッシュタグであり、これは大量のtwitter jsonが私の消費者にストリーミングしていることを意味します。私は消費者のtwitter jsonの処理をしません。私は rethinkdbに挿入する前に、redisでtwitterストリームをバッファリングするにはどうすればよいですか?

は、私がrethinkdbにツイートJSONオブジェクトを保存する欲しいもの

。ツイートは消費者を入力する速度があるかもしれないので、これによりツイートの体積(及び前記ボリュームの予測不可能)に、私は(それらが消費されるようにrethinkdbにつぶやきJSONオブジェクトを挿入

仮定

を避けるべきですrethinkdbがこれらのつぶやきを書くことができる速度よりも速い)。

ツイートjsonオブジェクトが消費されたときに、それらの書き込みを処理するには十分に速いので、ツイートjsonオブジェクトを直接redisにプッシュし、別のプロセスでこれらのツイートを引き出してrethinkdbに挿入することができます。私は

  1. を学ぶことを願って何

    は私の仮定が正しいですか?

  2. このアーキテクチャは意味がありますか?そうでない場合は、より良い選択肢を提案できますか?

  3. 私の仮定が正しいとこのアーキテクチャは理にかなっている場合は、

    つぶやきのバッファとしてredisを使用する最も良い方法は何ですか?

    b。 rethinkdbへの挿入を実行するために、redisバッファからの読み込み(および更新/消去)の最良の方法は何ですか?

答えて

2

私たちは、この種のアーキテクチャを本番環境で使用しています。あなたが処理しようとしているデータの量がredisの最大メモリ制限を超えていない場合は、このように進めることができます。また、ダウンタイムを処理する必要があります。

つぶやきのバッファとしてredisを使用する最も良い方法は何ですか?

redisキューを使用できます。あなたがプロデューサーが頭の中に押し込んでいるところ。 あなたの消費者は尾から消費し、あなたのdbに移入します。

http://redis.io/commands#list

あなたは同様の要件を持っているように(プロデューサーが重く、消費者が一つ一つ飛び出るよりも少し速く消費する必要があります)

Redis Pop list item By numbers of itemsこのソリューションを使用することができます
関連する問題