0

私は最近、再設計しなければならない同僚からカーボン/グラファイトのセットアップを「継承」しました。現在のセットアップは次のとおりです。

  • データセンター 1 (DC1): 1 つのカーボン リレーと 4 つのカーボン キャッシュを備えた 2 つのサーバー (サーバー DC1-1 およびサーバー DC1-2)
  • データセンター 2 (DC2): 1 つのカーボン リレーと 4 つのカーボン キャッシュを備えた 2 つのサーバー (サーバー DC2-1 およびサーバー DC2-2)

4 つのカーボン リレーはすべて、REPLICATION_FACTOR が 2、一貫性のあるハッシュ、およびすべてのカーボン キャッシュ (2(DC) * 2(サーバー) * 4(キャッシュ)) で構成されています。これにより、一部のメトリックが 1 つのサーバーにのみ存在するという影響がありました (それらはおそらく同じサーバー上の別のキャッシュにハッシュされていました)。100 万を超えるメトリクスでは、この問題はすべてのメトリクスの約 8% に影響します。

私がやりたいのは、冗長性を備えた多層セットアップです。これにより、データセンター全体ですべてのメトリックをミラーリングし、データセンター内では一貫したハッシュを使用してメトリックを 2 台のサーバーに均等に分散させます。

このためには、リレーの構成 (主に) について助けが必要です。ここに私が考えているものの写真があります:

http://i.imgur.com/dtjGlhn.png

クライアントはそれぞれのデータセンターのtier1relayにデータを送信します(「負荷分散」はクライアント側で発生するため、たとえば、ホスト名に偶数の番号を持つすべてのクライアントはtier1relay-DC1-1に送信され、奇数のクライアントはtier1relay-DC1-1 に送信されます)。 number はtier1relay-DC1-2に送信されます)。

tier2relayはコンシステント ハッシュを使用して、データセンターのデータを 2 台のサーバーに均等に分散します。たとえば、tier2relay-DC1-1の「疑似」構成は次のようになります。

  • RELAY_METHOD = コンシステント ハッシュ
  • 宛先 = server-DC1-1:cache-DC1-1-a、server-DC1-1:cache-DC1-1-b、(...)、server-DC1-2:cache-DC1-2-d

私が知りたいこと: tier1relay-DC1-1tier1relay-DC1-2に、すべてのメトリックをDC1 と DC2のtier2relayに送信し (DC 間でメトリックを複製する) 何らかの「tier2relay-DC1-1tier2relay- DC1-2の間の負荷分散」。


別のメモ: コンシステント ハッシュを使用する場合、カーボン リレー内で何が起こるかを知りたいのですが、1 つ以上の宛先に到達できません (サーバーがダウンしています) - メトリックが再度ハッシュされますか (到達可能なキャッシュに対して) またはそれらは当面の間、単にドロップされますか?(または、別の角度から同じ質問をする: リレーがメトリックを受信すると、構成されたすべての宛先のリストに基づいて、または現在使用可能な宛先に基づいて、メトリックのハッシュを行いますか?)

4

1 に答える 1

0

https://github.com/grobian/carbon-c-relay

これはまさにあなたが必要とすることをします。また、パフォーマンスを大幅に向上させます。

于 2015-09-07T12:12:29.497 に答える