0

非常に多数のリクエスト (同時および複数のサーバー間) を受信して​​永続化する方法を模索しており、後で処理するためにデータの受信パケットを保存するための最も信頼できる方法についての見解に興味があります。これらのオプションに絞り込みましたが、私が考えていなかった創造的な解決策があると確信しています:

  • ファイル システム (この場合、最も高速で信頼性の高い書き込み用ファイル システムは何ですか)?
  • ディスクはメモリ データ ストア (Redis/Memcached/etc) に永続化されていますか?
  • データを AMQ のキューに入れ、そこから処理しますか?
  • NoSQL データベース (MongoDB/Couch)?
  • Hadoop クラスタ?

ありがとう

4

1 に答える 1

2

Fluentdを使用して、データの小さなパッケージ(リクエストログ)を中央のログシンク(s3)にダンプしています。これには、サーバーでの待ち時間が短く、すべてのデータを中央の場所に置くという利点があります。そこから、たとえば、Hadoopクラスターを使用してそれらを処理できます。

また、入力((sys)log、httpソケット、直接コード統合)およびその出力(s3、file、(no)sqldb、scribeなど)として使用するものにも非常に柔軟性があります。

あなたの選択肢に関して、私の発見は次のとおりです。

  • ファイルシステム:高速ですが、cronを使用したrsyncは実際には安定したオプションではないため、複数のサーバーで問題が発生します。
  • memストアの場合:これも迅速ですが、メモリ管理は非常に迅速にいっぱいになるため困難です。
  • AMQ:動作する可能性がありますが、実際には非常に高いスループット用に設計されていません。
  • 中央DB:実行可能なオプション
  • Hadoop:実際にはこのデータを処理するためのものであり、保存するためのものではありません。

中央ログに関するこのブログ投稿もご覧ください。

于 2012-10-29T17:02:13.540 に答える