最適化とApplication Clustersの大きな拡張カフカデータスズメバチの巣プラットフォーム

馬セルラー技術元の記事には、より多くの公共の数字を乾燥させるために購読してください。mfwtechを

カフカは、このような非同期転送メカニズムとして、我々は交換と、異なるシステム間のデータ転送の問題を解決することができます、高スループット、低レイテンシーで信頼性の高いメッセージングを、リアルタイムで大量のデータを扱うことができ、現在人気のあるミドルウェア・メッセージ・キュー、です。

スズメバチの巣でカフカは、アプリケーションの非常に広い範囲を持って、コアビジネスの多くのサポートを提供します。この記事では、他のどのようなプログラムで、その後、実用的なアプリケーションビッグデータプラットフォームにおけるカフカスズメバチの巣に焦点を当てカフカの私たちが遭遇するもののアプリケーションとどのように問題を解決するためのさまざまな段階で、関連するビジネス・シナリオを紹介します。

上巻のシナリオ

ビューのビッグデータプラットフォームのアプリケーションポイントでカフカからのシーンは、以下の3つのカテゴリに分類されています。

最初は、データベースとしてカフカであるリアルタイムデータのための大規模データ・ストレージ・サービス・プラットフォームを提供します。ソースと2次元の使用から、リアルタイムのデータは、クライアントログ埋めポイント(H5、WEB、APP、アプレット)とサーバーのログに基づいて、DBのデータ、ログ監視タイプのビジネスの終わりに分けることができます。

第二は、データ分析のためのデータソースを提供することで、データソースとして各埋め込みログ、および多次元クエリ、リアルタイムドルイドOLAP、ログおよび他の詳細を含むオフラインドッキング会社データ、リアルタイムデータウェアハウスおよび分析システムをサポートします。

第三のカテゴリーは、サブスクリプションのビジネス面のためのデータを提供することですビッグデータプラットフォーム内のアプリケーションに加えて、我々はまた、カフカの検索、大型輸送、ホテル、およびその他のコンテンツ中心のビジネス・コア・サブスクリプションサービス、リアルタイムでの使用を推奨するためのデータを提供することは、ユーザ・コンピューティング、リアルタイムのユーザーのトレーニングとリアルタイム勧告の肖像画、抗不正行為などの機能します、ビジネスのアラーム監視。

:以下に示すように、メインアプリケーション

道路2弾の進化

四つの段階

初期のビッグデータプラットフォーム主に低レイテンシ、高スループット、マルチサブスクリプション、データバックなどのアカウントのカフカのログ収集と治療システム事業の導入、の理由として、より優れたビッグデータのシーンのニーズを満たすことができます。しかし、急速な事業量の増加、ならびにこのような不完全な登録メカニズム、メカニズムの監視などの運用に使用し、システムメンテナンス、に遭遇した問題、すぐに見つけることができない問題につながる、とないオンラインリアルタイムタスクの数の障害の後で高速回復は、メッセージのバックログ、カフカが挑戦されていたクラスターの安定性と可用性の原因となるいくつかの深刻な問題を経験しています。

私たちは緊急かつ困難な上記の問題を解決するため。カフカが存在しているビッグデータプラットフォームの利用における痛みのポイントのいくつかのために、我々は実用的な一連の操作を行うために、アプリケーション層を拡大してクラスタを使用し、全体的には4つのフェーズで構成されています。

第一段階:バージョンアップ生産と消費のデータプラットフォームにおけるボトルネックや問題のいくつかの周りに、当社の技術のカフカの現在のバージョンの選択、そして最終的には、バージョン1.1.1の使用を決定します。

フェーズII:リソース隔離ビジネスの急速な発展を支援するために、我々は建物と、クラスタ内のトピックマルチクラスタ間の改善されたリソースの分離を持っています。

**第三段階:** アクセス制御とアラーム監視。

まず、セキュリティの観点から、早期に実行している裸の状態でカフカクラスタ。カフカを共有するマルチ製品ラインので、それは他のビジネスデータのセキュリティ問題へのトピックリードによる誤読しやすいです。したがって、我々に基づくSASL / SCRAM + ACLは、認証機能を追加します。

アラームの監視の面では、カフカは、ケースがリアルタイムタスクかどうかの健康の重要な指標となっている取り扱い、現在の標準、入力データソースのリアルタイム計算、1つのラグバックログになっています。そのため、ビッグデータプラットフォームは、カフカと消費者の例を監視「レーダー」多次元クラスタという名前の統一カフカアラーム監視プラットフォームを構築します。

フェーズIV:アプリケーション拡張ビジネス側の一部の誤った使用が生じ標準の統一使用の欠如に起因する早期カフカ、同社のさまざまなビジネスラインで、プロセスを開きます、。この痛みのポイントに対処するために、我々はビジネス面、データの生産とアプリケーション、ユーザーのプラットフォームライセンス、消費者モニターアラームの消費、および自動化のプロセスの他の多くの側面を与えるために割り当てられたアプリケーション・サービスの形で、リアルタイムのサブスクリプションのプラットフォームを構築し、需要サイドを作成しますリソースの全体的な閉ループ制御の全範囲を使用しています。

ここでは、いくつかの重要なポイントを中心に展開]ご紹介します。

コアの実践

1.バージョンアップ

ビッグデータプラットフォームは、この初期のバージョンで使用されてきた前に、私たちは徐々にの過程で発生したボトルネックや問題の長期使用のバージョン0.8がたくさんあるので、カフカ0.8.3ですが、現在のように、リリース2.3のカフカ最新の公式バージョンは到着しましたこれは、バージョンアップによって解決することができます。

たとえば、次の例は、前の古いバージョンを使用して、いくつかの共通の問題は、次のとおりです。

  • セキュリティのためのサポートの欠如:データセキュリティ上の問題が存在し、認証および承認してリソースのきめ細かい管理を使用することはできません
  • 複製された下のブローカー:複製された下の状態では、ブローカーが、不確実性の原因を見つけ、それを解決することは困難です。
  • 新機能は利用できません:そのような取引メッセージ、電源や他のメッセージ、メッセージのタイムスタンプ、メッセージの問い合わせとして。
  • 管理操作の複雑さを増す、使用に依存飼育係、飼育係の重すぎるを相殺するために、クライアントとメンテナンスの
  • モニタリング指標は不完全である:話題、パーティション、ブローカーのデータサイズインジケータ、カフカマネージャーや他の監視ツールとして低位バージョンカフカの悪いをサポートするために、

ターゲットバージョンの選択研究の特性の間、いくつかのような:

  • バージョン0.9は、我々が最も懸念しているセキュリティ認証および承認機能クォータとセキュリティの増加、
  • バージョン0.10は、より細かいタイムスタンプはすぐに、オフセットに基づいてデータを検索したいタイムスタンプを見つけることができます。ベースのデータを処理し、このリアルタイムデータは非常に重要であるカフカデータソースを再生しました
  • バージョン0.11、冪等との取引支援のとデータ損失のコピー/データの不整合が解消しました。
  • バージョン1.1は、交通機関の整備が向上しました。たとえば、コントローラがダウンをシャットとき、あなたは長く、複雑なプロセスが大幅にバージョン1.0で改善されました前に、必要なときにブローカーを閉じたいです。

カミュとカフカのバージョンとの互換性とバージョン1.1がサポートされる重要な新機能の利用シナリオを総合的に勘案を満たしている、ので、バージョン1.1を選んだ、それがあります。ここで再びカミュのコンポーネントについて簡単に、主にHDFSにカフカのダンプデータとして、当社のビッグデータプラットフォームで、また、LinkedInのオープンソースでは重要な方法です。

2.リソースの分離

そのため少し複雑さとビジネスの規模の前に、ビッグデータプラットフォームは、カフカのクラスタを分割することは比較的簡単です。同社のビジネスデータにつながった期間が混在一緒にされた後、ビジネスのトピックの特定の非合理的な使用があり、いくつかのブローカーのオーバーロード、その他の通常の業務への影響を引き起こす可能性があり、さらにいくつかのブローカーの障害が全体に影響を与えます使用できない全社業務のリスクにつながるクラスタ、。

上記課題を解決するために、クラスタの変換で2つの練習をしました。

  • 機能的に独立した財産分割クラスター
  • クラスタサイズ内のトピックリソースの分離

(1)クラスタの分割

カフカは、操作および保守の複雑さを低減、サービスの分離のために、物理的クラスタの特徴寸法複数に従って分割しました。

最も重要な点を埋めるためには、現在3つのクラスター、次のように定義された関数の様々なタイプのクラスタに分割データの使用であります:

  • ログクラスタ:このプロセスは、問題のために発生することができないように、各エンドポイントのデータ収集は、クラスタに優先着陸を与える後埋め、カフカ取得割り込みを発生させたカフカの高可用性要件。クラスタは、消費者が制御可能なことを確認するために、外部のサブスクリプションを提供していませんので、同時にまた、オフライントランキングサービス取得の源として、データは、データのオフライン計算のその後の一部に参加カミュコンポーネントによってHDFSに毎時時間精度をダンプします。

  • サブスクリプション・クラスタの全額:ログイントピックからクラスタデータの大半はオーバークラスタリアルタイムの同期です。私たちは、データログクラスタ上記の外部ではないので、全体量クラスターは、消費者契約の義務を引き受けました。主に複数の業務のためのデータ分析のプラットフォーム内部のリアルタイムタスク、および分析サービスを提供しています。

  • パーソナライズカスタムクラスタ:先に述べたが、我々は、ビジネスニーズ、マージデータのログソースに基づいてパーティを分割することができ、我々はまた、カスタマイズされたトピック、ストレージのみの話題を着陸後にシャントを提供する必要があり、クラスタをサポートしています。

クラスタ全体の構造を次の図に分かれています。

(2)リソース隔離

交通量のトピックは、クラスタリソースの分離のための重要な基礎です。例えば、我々は、我々がパーティションに関連する二つのデータを格納埋没データ・ソース・サーバー・イベントおよびビジネスでの端にある2つのモバイル・イベント埋設バックエンド・データ・ソースを避ける必要がありますされているログデータソースを大量に埋没しますブローカーで同じクラスタノードに割り当てられています。別のトピックを物理的に分離することで、ブローカー上のトラフィックを避けるために傾いています。

3.アクセス制御とアラーム監視

(1)アクセス制御

私たちは長い間、我々は生産と消費にBrokerの接続アドレスを知っているように、重大なデータセキュリティ上の問題があり、裸の状態で実行されていない初期のカフカは、クラスタ内の安全な認証を設定し、導入の冒頭で述べました。

一般的には、SASL Kerberosユーザーが選択されます使用していますが、クラスタプラットフォームカフカの使用上のシーンは、ユーザシステムは、Kerberosが比較的複雑である一方で、他の問題へのリスクのリードがあり、Kerberosを使用するようにやり過ぎである、複雑ではありません。また、暗号化、内部ネットワーク環境に実行されているため、そのSSL暗号化を使用しないでください。

SASL認証方法を使用してクラスタとして最終的なプラットフォームカフカ、ベースSASL / SCRAM + ACL、データのセキュリティを確保するために動的なユーザ作成の軽量組み合わせ。

(2)監視アラーム

私たちはしばしば、クラスターの使用に悪化していない理由は、消費者アプリケーションのパフォーマンスを見つける前に。問題の原因は、通常、高い確率消費者の履歴データの読み出しが最初のページ - キャッシュにロードされたデータを読み込む必要がありますマシンのカーネルのブローカーの終わりで、その結果、ページ - キャッシュにヒットしませんでした、その結果はむしろ、ディスクから消費者に返すことができますこれは、クラスタのパフォーマンスが低下し、同時に読み書きするために、消費者に影響を与え、データを読み取るために、今、ディスクへの書き込みに役立つことができます。

その後、アプリケーション遅れ消費者は非常にかかわらず、大きな意義のプラットフォームやユーザーのアラームを監視し、発生する問題を軽減するためには事前の介入を見つける必要があります。ここに私たちの練習のいくつかのアイデアがあります。

全体的なプログラム:

プログラム全体は、主にオープンソースコンポーネントカフカJMXメトリック+ OpenFalcon + Grafanaに基づいています。

  • カフカJMXメトリック:内部インデックスカフカブローカーはJMXメトリックの形で外部に露出されています。1.1.1バージョンでは、監視のニーズを満たすために、モニタリング指標の富を提供します
  • OpenFalcon:ミレーは、高可用性とスケーラブルなオープンソースの監視システム、エンタープライズクラスのオープンソースであります
  • Grafana:メトリック可視化システム、我々はドッキング可能なメトリックのさまざまなデータソースに精通しています。

モニタリングについて:

  • ファルコンエージェント:各ブローカー上で展開、分析カフカJMXメトリックは、データを報告します
  • Grafana:ファルコンカフカメトリックデータ、クラスタ、ブローカー、トピックを視覚化するために使用、消費者の4つの文字は、市場を監視します。
  • イーグル:コンシューマ・グループのアクティブ状態を取得するAPIを提供しながら、消費者団体は、監視警報システムへの監視データを提供する、例バックログをラグ「レーダー。」

警告について:

レーダー・システム:自己啓発監視システム、カフカは、アラームと連動して閾値を設定、ファルコンイーグルインデックスによって取得しました。消費パターンに、例えば、ラグは、ラグが増加している場合、我々はそれに対処しなければならない、消費の重要な指標は正常です。

問題が発生した場合、警報システムは、ユーザーに通知する必要があるので、だけでなく、消費者は、そのユーザーが知っている必要があることを知っている管理者。最良は自動的にある零細企業の手紙警告ロボットを通じて対応するクラスタユーザーとカフカの消費者団体の担当マネージャまたは人に警告します。

例の監視:

4.アプリケーション拡張

**(1)リアルタイムデータプラットフォームのサブスクリプション**

リアルタイムデータのサブスクリプション・プラットフォーム経験豊富カフカは、アプリケーション、プラットフォームのユーザー認証、消費者モニターアラーム、および自動化のプロセスの他の多くの側面の方法でデータの生産と消費を承認作業指示にシステムアプリケーション全体のプロセス管理を使用し、統合管理と制御を提供します。

核となるアイデアは、IDベースの認証とアクセス制御カフカデータソースを管理するために、カフカ下流のアプリケーションに同時に増加データセキュリティです。

(2)標準化されたアプリケーション・プロセス

生産者や消費者かどうか、消費者が最初に提案したサブスクリプションのチケット方式に適用されます。ビジネスライン上の情報、トピック、などのアプリケーション情報サブスクリプションなど、チケットが最終的に承認を待つためのプラットフォームに流れます。承認された場合、消費者は、許可アカウントとブローカアドレスに割り当てられます。これまでのところ、消費者は、通常の生産の支出を行うことができます。

(3)アラームの監視

プラットフォーム、権限とリソースについてはGroupTopic資源がトピックや消費者の使用を生成するために使用することができますバインドされています。リソースの一部を使用するための配給権は自動的にリソースのライフサイクル全体を監視するため、当社のレーダー監視システムに登録されます一度。

(4)リプレイデータ

現在のアーキテクチャのデータの整合性と正確性の検討のためのラムダは、ビッグデータへの一般的なアーキテクチャのアプローチでいます。しかし一方で、ラムダ・アーキテクチャは、過度の使用やリソースの問題の難易度が高いの開発があります。

さまざまな方法時間のデータ、リプレイリアルタイムデータのようなサイトをサポートし、消費者のグループのために任意のサイトを提供することができ、リアルタイムのプラットフォームをリセットするために購読し、これらの痛みのポイントを解決するためにカッパアーキテクチャのシーンのためのサポートを提供します。

(5)テーママネージャ

なぜテーマの管理を提供しますか?そのような私たちは、ユーザがクラスタ上で自分のカフカトピックを作成したい場合など、いくつかの非常に単純な例については、その後、明らかにあなたは、ノード操作に直接彼を聞かせたくありません。誰でもSSHサーバーを介して行くことができないので、だから、ユーザーが懸念している、または管理者が懸念しているかどうか、サービスの話を、私たちは、それを操作するための単一のインターフェースを持っている必要があります。

リソースの隔離が指定されている、テーマを作成するなど、統一された入場テーマの管理サービスの導入を、作成、サービス管理機能を提供するために、対象のメタデータ管理が必要です。

(6)データの分布

以前のアーキテクチャでは、消費者の消費データの粒度は、各カフカカフカトピックLOGSOURCEは、データの全体量を節約する、おそらく内のいくつかのアプリケーションの一つである消費のデータLOGSOURCE、の部分だけ多くの消費者が使用しています埋もれたデータは、イベントを指します。あなたはルールをフィルタリングし、自分の下流のアプリケーションを記述する必要がある場合は、リソースの使用の無駄と使いやすさは確かに存在し、シーンの他の部分は一緒に使用する複数のデータソースをマージする必要があります。

上記2例に基づいて、私はビジネスの人々の党分裂、マージによって需要を実現し、データ・ソース間の任意のデータ統合やappcodeとイベントコードの条件を設定したルールをフィルタリングト​​ピックのサポートをカスタマイズします。

パート3のフォローアップ計画

  • データの重複の問題を解決します回復およびその他の要因は、データの重複につながる障害に起因するリアルタイムストリーム処理プラットフォームを解決するために、我々は唯一のセマンティクスたら端から端までコミットトランザクションメカニズムカフカとプロトコルを2 FLINKを結合しようとしています。あなたが試験に合格した場合、今のプラットフォーム上で小規模な試験では、運用環境で展開される予定。

  • 消費者は限定的なものディスクの多数の消費者を読めば読む多くのシナリオ追記では、操作が他の消費者の遅延プロデュースレベルの操作に影響を与えます。Lはこのように、閾値のカフカクォータによって制限消費機構と支持動的調整は我々のその後の方向であります

  • シーンの拡張子カフカ拡張SDK、HTTPおよび他のニュースサブスクリプションおよび製造方法に基づいて、異なるロケールやシーンのニーズを満たすために。

これらは、カフカビッグデータプラットフォームのスズメバチの巣についての実用的なアプリケーション共有であり、あなたが任意の提案や質問がある場合は、公共のスズメバチの巣の技術背景の数でメッセージを残してください。

著者:ベリング、スズメバチの巣ビッグデータプラットフォームのR&Dエンジニア。

おすすめ

転載: juejin.im/post/5e0ede02f265da5d3d2e9570