0

次のようにスクライブを使用します。

  • Web サーバー(SA) --->ローカル スクライブ サーバー(SB)

    • Web サーバー (SA) とローカル スクライブ サーバー (SB) を 1 台のマシンに。
    • Web サーバーはすべてのログをスクライブに最大 3 回送信するだけで、2 回再試行した後、それらを破棄します。
    • Local Scribe Server はバッファ ストアを使用し、プライマリはネットワーク ストアを使用してログを次の Collector Scribe BJ に送信し、セカンダリはログをローカル ディスクに書き込みます。
  • ---->Collector Scribe BJ(SC)----ssh トンネル(gzip 圧縮)---vpn--->Collector Scribe SH(SD)

    • コレクター スクライブ BJ (SC) とローカル スクライブ サーバー (SB) を 1 つの LAN 上に配置。
    • Collector Scribe BJ(SC) はマルチ ストアを使用し、store0 はバッファ ストアを使用し、store0 プライマリはネットワーク ストアを使用して次の Collector Scribe SH にログを送信し、store0 セカンダリはローカル ディスクにログを書き込み、max_queue_size を設定します。 =10000000 および max_queue_length=2000000。
    • Collector Scribe BJ(SC) は store0 -- buffer store -- primary store ネットワークを使用してローカル ポートにログを送信し、ssh トンネルを介して IDC BJ から IDC SH にメッセージを送信します。
    • 最後に、コレクタ スクライブ SH(SD) は std ファイル ストアを使用してログをディスクに書き込みます。

これが私の質問です。

  • 質問 1: スクライブ ソース コードで max_queue_length オプションの使用法が見つかりません。また、max_queue_length が非推奨であるという googlegroup で言及されているいくつかの情報も見つけました。ここで「max_queue_length=20000000」を使用しても効果がないのでしょうか。

  • 質問 2: オプション max_queue_length 「キュー内のメッセージ数がこの値を超えた場合、バッファ ストアはセカンダリ ストアへの書き込みに切り替わります (githup wiki で説明されています)」だけで、バッファ ストアのスクライブがプライマリをいつ切り替えることができるかを制御できます。セカンダリ ストアに格納します。max_queue_length が役に立たない場合、プライマリ ストアからセカンダリ ストアへのバッファ ストアの切り替えを制御するにはどうすればよいですか?

  • 質問 3: ローカル スクライブ サーバー (SB) のセカンダリ ストアの書き込み速度が Web サーバー (SA) の入力速度よりも速い場合、ローカル スクライブ サーバー (SB) はデータを失うことはありませんか?

  • 質問 4: inder.pall が言及した googlegroup にもグラフがあります。Here is the link: http://scribe-server.googlegroups.com/attach/979f9ffbe00f5eb3/Screen+Shot+2011-11-22+at+9.12.32+AM.png?gda=FIJ3I0cAAACFwDSo_bUG96Wo0CVG6AlpKMzYsToU_WRZEGbv_RKdbkT0wWvVm1xmkWqWMWNxOm4bQwFxJw55cVwemAxM-EWmeV4duv6pDMGhhhZdjQlNAw&view=1&part=4 スクライブが利用できない (not alive&timeout) か、そのキュー サイズが max_queue_size より大きい場合、上流のスクライブに TRY_LATER が返されると思います。この時点で、上流のスクライブはメッセージをセカンダリにバックアップしますか?

  • 質問 5: 質問 4 で述べたように、vpn(BJ--SH) が非常にビジーで遅延が非常に大きい場合、トンネルが使用可能でコレクタ スクライブ SH(SD) が TRY_LATER を返さず、明らかにコレクタ スクライブ BJ( SC) の入力速度はトンネルへの出力速度よりも大きいため、Collector Scribe BJ(SC) のメモリは継続的に増加し、セカンダリ ストアは使用されませんか?

4

1 に答える 1

0

先月、同じ/類似の質問に苦労しました。スクライブを使用している人々のおかげで、いくつかの答えが見つかりました。

  1. ここで「max_queue_length=20000000」を使用しても効果がないのでしょうか。回答: max_queue_length は廃止され、その機能を置き換えるものは他にありません。私の意見では、 max_queue_length は一見しただけでわかるよりも重要です。例: max_queue_length は、入力バッファー (スクライブ サーバーの) がいっぱいになったときに発生する TRY_AGAIN を調整して防止するのに役立ちます。必要に応じて、スクライブ コードから max_queue_length を取り除いた変更を元に戻すことができます。変更セットは次のとおりです: https://github.com/facebook/scribe/commit/1b5d5c89a40c737ed7fa9a028f490bf336cd0da8

  2. max_queue_length が役に立たない場合、プライマリ ストアからセカンダリ ストアへのバッファ ストアの切り替えを制御するにはどうすればよいですか? 回答: プライマリ ストアがエラー (EAGAIN - リソース不足) を送信するか、TRY AGAIN を送信するか、スクライブ サーバーの max_queue_size に達するまで待ってから、セカンダリ ストアへの書き込みを開始します。この場合、プライマリ ストア接続は DISCONNECTED 開始になります。接続が再確立されると (retry_interval および retry_interval_range に基づいて)、セカンダリ ストアからのメッセージがプライマリ ストアに「再生」されます。

3.ローカル スクライブ サーバー (SB) のセカンダリ ストアの書き込み速度が Web サーバー (SA) の入力速度よりも速い場合、ローカル スクライブ サーバー (SB) はデータを失うことはありませんか? 回答: どこかのスクライブ サーバーに書き込みを行う非同期アペンダがあるか、セカンダリ ストレージがいっぱいのディスクでない限り、そうではないと思います。... またはスクライブ サーバーがクラッシュした場合、max_size に等しいメッセージを消費します。

  1. ...TRY_LATER 上流の筆記者に。この時点で、上流のスクライブはメッセージをセカンダリにバックアップしますか? 答え: はい。最初の質問への回答で述べたように。

  2. ...コレクター スクライブ BJ(SC) のメモリは継続的に増加し、セカンダリ ストアは使用されませんか? 答え: 答えはもうお分かりだと思います。このシナリオでは、スクライブ サーバーは TRY_AGAIN をアップストリームに送信し、それに書き込むアペンダーが書き込み速度を抑制することを期待します。

また、これが役に立つかもしれません: http://groups.google.com/group/scribe-server/browse_thread/thread/ec2b1b641a968c0b

-アビナフ

于 2012-01-03T16:04:34.630 に答える