ヤフーは、パルサーの十億との毎日の平均メッセージングプラットフォームを構築する方法

ヤフーとソフトバンクは、ヤフーは、日本で最も人気のあるポータルサイトの一つであり、日本のインターネット企業の合弁会社です。支配的な日本市場でヤフーのインターネットサービス。次の図は、3次元操作のヤフーの規模を示しています。最初は、サービスの数、ヤフーは、インターネットサービスの数百を提供してきたで、2番目は、インターネットサービスのこれらの何百もの正常な動作をサポートするために、クロックの周りに15万台の以上のサーバ(主にベアメタルサーバー)を使用するサーバーの数、ヤフーであり、第三月当たりの総ページビューは、データは2017年にそれを示し、ヤフー月以上の700億ページビューあたり。このように、ヤフーの大規模なサービス。![](Https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195046569-1144299739。ヤフーが課題となっているため、PNG)##運用の課題は巨大です。ユーザーの大規模なニーズを満たすために、高いパフォーマンスと拡張性の高いサービスを提供しています。また、多くの事業者のニーズを満たすために、マルチテナントのサポートサービスを提供する必要があります。持続性も重要であるので、時にはあなたは、機密情報やミッションクリティカルに対処する必要があります。また、Yahooは大規模なデータセンターを持って、クロス境界のコピーが強く求められています。多くの点で、我々は、データの整合性を確保しながら、上記の要件を満たし、サービスを実行するために拡張することができ、安定したスケーラブルなメッセージングプラットフォームを見つけることを期待して、大きな課題に直面しています。なぜ、Apacheのパルサーは、これらの課題に対処するために##を選択し、我々は様々なメッセージングプラットフォームを研究し始めました。次のように### Apacheのカフカまず対アパッチパルサーは、我々は、ApacheパルサーとApacheカフカを比較して、業界ニュースのこれらの2つの異なるシステムでは、結果が得られました。2つのシステム間の主な違いは、データの分布です。データ・ロード・バランシングでは、カフカよりパルサーは、より良い扱い。例えば、図において以下の図は、図1のパーティション3つのストレージノード、データの2つのコピーを格納する各パーティション。カフカは、すべてのデータ・パーティションは、リーダーブローカ(ブローカー2)に格納され、その後、別の従動ブローカ(ブローカ1)にコピーされます。ブローカー3リーダーやフォロワーでもないので、何のデータはありません。カフカでは、以降のパーティション内のすべてのデータは、ブローカ、パーティションサイズとブローカーの容量制限することは、被験者によって記憶されています。拡張したいパーティションたら、私たちは、データの再配分に必要な、そうでない場合は、負荷アンバランスな状況が発生します。そしてパルサーは、パーティション内のデータは、スライス(セグメント)と呼ばれるより細かい単位に分割されます。それらが均一に分布し、ブックメーカーに格納されている、パーティションサイズは、単一のブッキーノード容量に限定されるものではなく、データは、拡張パーティションを再配布する必要がありません。したがって、パルサーは、拡張が容易カフカよりも柔軟です。もう一つの違いは、地域横断的複製です。カフカの使用クロス地域のコピーに対処するMirrorMakerが、MirrorMakerを実行し、管理するために、追加のマシンを使用する必要があります。パルサー 内蔵地域全体で複製、追加のコンポーネントは、地域間でのレプリケーションを展開することがありません。![ヤフー方法パルサーとの毎日のニュースのプラットフォームのビルド十億へ](https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195049022-633309679.png)### OpenMessagingベンチマークはOpenMessagingベンチマークを使用することができます別のメッセージングシステムを比較することは容易です。報告によると、優れたApacheのパルサーは、スループットとレイテンシ性能の処理。図青線パルサー、赤い線はカフカを表します。特定の線は、より高いスループット、上述の左のパネルを示します。右側のパネルショー遅延は、低い遅延線は、後述します。どのようにヤフーパルサーとの毎日のニュースのプラットフォームのビルド十億か?なぜ私たちはさらなる研究Apacheのパルサー、パルサーに決めたと私たちの大義のために、より適しまとめたように、Apacheのパルサー### Apacheのパルサーより良いアパッチカフカよりも、これらの命令の最も適切な比較、。話題の膨大な数は、だけでなく、データの信頼性を確保する場合でも、####高いパフォーマンスは、Apacheのパルサーは、高スループットと低遅延を実現することができます。例えば、誓い社は230万毎日のトピック、1000000000000メッセージを処理します。体のこの膨大な量では、メッセージが失われることができず、順番に処理しなければならないことを確実にします。Apacheのパルサーは、これらのニーズを満たすだけでなく、千を達成するだけでなく、000スループット(MSG / S)および5ミリ秒の遅延。#### Apacheのパルサーのスケーラビリティを拡張することは容易では非常に良いです。拡大を実現するためには、単にサーバーを追加します。パルサーサービス及び貯蔵層は、ブローカーデータパスを追加したり、ブッキーする柔軟性が分離されています。あなたは、サービス能力を改善する必要がある場合は、ブローカーを追加することができます。あなたは、ストレージ容量を拡張する必要がある場合は、ブッキーを追加することができます。####マルチテナントマルチテナントは、複数のサービスを意味するパルサーシステムを共有します。パルサーを使用した「テナント」として、各サービスおよびアプリケーション。そのため、彼らの別のメッセージングシステムを維持することなく、さまざまなサービスを提供しています。Apacheのパルサーは、保護のメッセージに異なる認証および承認メカニズムがブロックされていない持っています。あなたは、認証と認可のメカニズムを設定することができ、そしてメッセージを保護するために、名前空間やテーマを共有します。したがって、あなたは、パルサーシステム上で複数のサービスを実行して、メンテナンスや人件費を削減することができます。複数のデータセンターにおける地域全体で####ヤフーの複製は、多くのサービスを実行しています。パルサーの申し出が内蔵された地域横断的レプリケーション、データセンター間のレプリケーションメッセージを効果的にサービス品質の向上、災害復旧、データ復旧に対処することができます。さらに重要なことは、地域横断的複製はパルサーの内蔵機能、簡単に有効にして使用することです。####パルサー機能パルサー関数は、計算フレームワーク(例えば、AWSラムダまたはGoogleクラウド関数)軽量(例えば、アパッチヘロン、アパッチ嵐、アパッチスパークまたは他の同様のシステムなど)なし外部のシステム。ただ、論理的に構築され、パルサーのクラスタにデプロイ。パルサー機能は、Java、Pythonとゴー言語をサポートしています。#### Kubernetes Kubernetesのパルサーは、多くのユーザーを持って、ヤフーはそのうちの一つです。KubernetesのクラスタにデプロイP ulsarは簡単です。次の図は、Kubernetesエンジンのパルサーの状態を使用することを示しています。パルサーを毎日メッセージのプラットフォーム十億を構築する方法![ヤフー?](HTTPS://img2018.cnblogs。COM /ブログ/ 377574/201911 / 377574-20191117195050588-1949420844.png)詳細な調査の後、我々はそのApacheのパルサーのApacheカフカよりもパフォーマンスが向上するだけでなく見つけましたが、またKubernetesに簡単にデプロイするために、当社の事業運営のすべてのニーズを満たすために、そう私たちは、内部のメッセージングプラットフォームとしてApacheパルサーを使用することにしました。##数年前からヤフーヤフーの生産環境のアプリケーションでのApacheパルサーパルサーの使用が。私はヤフーではApacheパルサーのシナリオと共有しましょう。図は、ヤフーのシステムアーキテクチャです。東の1、西に1:我々は2つのデータセンターを持っています。各データセンターは、ブローカー、ブッキー、ZooKeeperのとのWebSocketプロキシサーバーを持っています。当社は、収集インデックスにプロメテウス使用、およびGrafanaにより可視化します。パルサーを毎日メッセージのプラットフォーム十億を構築する方法![ヤフー?以下に示すように(Https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195052467-1743849346.png)プロメテウスは、トピック、生産者と消費者の数を監視するために使用することができます。パルサーを毎日メッセージのプラットフォーム十億を構築する方法![ヤフー?ヤフー中](Https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195054298-1125178821.png)###セルフサービスツール、私たちは、テナントを作成および管理するための一連のツールを開発しています、名前空間とテーマ。ユーザーは、テナントを作成し、独自のUIインターフェイス、およびコンフィギュレーション設定を名前空間ができます。現在、唯一のUI内部使用ヤフー、それがオープンソースで、日本人ではありません。このUIを使用して、あなたは、このようなようにスループット、メッセージの平均サイズととして、話題にテナントと名前空間、およびビューの統計情報を作成することができます。[ヤフーがどのようにパルサーで毎日のニュースのプラットフォームの十億を構築するには?](Https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195055752-394837458.png)###ケース1:我々は、通知サービスシステムとしてApacheパルサーを使用してコンテンツ更新通知。ヤフーにプッシュパートナー企業からの(例えば、天気、ニュース、地図データなど)各種コンテンツファイル。サービスは、サービスのトピックとしてどのようなこれらの更新なので、ファイルを理解する必要があります。更新するとトピックが通知されます。通知サービスを受信すると、ファイルサーバーから更新されたコンテンツファイルを取得します。パルサーを毎日メッセージのプラットフォーム十億を構築する方法![ヤフー?](Https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195057055-1693609413.png)###ケース2:作業メールサービスは、我々は、非同期の作業キューを構築するApacheのパルサーを使用するキュー。メールのインデックスので、非同期的に重いワークロード、。まず、メールBEサーバーは、自分のペースで仕事を得るために、消費者からのパルサー、パルサーのジョブプロデューサーを登録しました。インデックスが失敗した場合、生産者が再登録されます。パルサーを毎日メッセージのプラットフォーム十億を構築する方法![ヤフー?](Https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195057986-814901173.png)###ケース3:ログパイプは、我々は、Apacheパルサー収集ログを使用しています。ヤフー、ほぼすべてのサービスとアプリケーションは、当社が収集ログしたいから(例えばヘロンなど)のPaaSプラットフォームまたは(例えばKubernetesなど)のCaaSプラットフォームを、実行します。まず、パルサーに投稿されたログは、トピックに分割されます。サービスのパルサー機能の最終目的地との使用によると、ログは最終的に、このようなHBaseの、プロメテウスとTwilioとして、他のデータベースやプラットフォームに送信されます。図は、ヤフーログ収集インフラストラクチャです。パルサーを毎日メッセージのプラットフォーム十億を構築する方法![ヤフー?多くの有用付き](Https://img2018.cnblogs.com/blog/377574/201911/377574-20191117195059081-2115255937.png)##結論アパッチパルサーが速く、耐久性、拡張可能パブ・サブ・メッセージング・システムこうした地域間のレプリケーション、マルチテナント、パルサー機能などの機能、内蔵し、上のようにします。長年にわたり、ヤフーニュース、更新、およびコミュニティ活動パルサーを懸念し、Apacheのパルサーを使用するには、パルサーは、アプリケーションシナリオの新機能を使用して、パルサーの安定性が良いされています。パルサーコミュニティは若いですが、異なるアプリケーションシナリオの急速な発展は、着陸の新規症例がありました。私たちは集中し続けるとApacheパルサーコミュニティとの深い協力、さらにパルサーの特徴と機能を改善し、最適化することになります。##次の情報は、Apacheパルサーに関する情報である、次のとおりです。 - Apacheのパルサー:https://pulsar.apache.org/ - お問い合わせ:https://apache-pulsar.slack.com/ [email protected] DEV @ pulsar.apache.org - オンラインビデオ:https://www.oreilly.com/library/view/oscon-2018-/9781492026075/video321374。HTML - プレゼンテーション:##著者のぞみ栗原、ヤフーニュースのプラットフォームのチームマネージャー、Apacheのパルサープロジェクトのコミッターhttps://conferences.oreilly.com/oscon/oscon-or-2018/public/schedule/detail/69704に。大規模なトラフィックのサービスやアプリケーションを扱うことができるApacheのパルサーパブサブ中心のメッセージ処理プラットフォームに基づいて作成するための責任を負います。 - 著者|のぞみ栗原 - レビュー|ジェニファー+ Sijie +アイリーン - 編集|アイリーン

おすすめ

転載: www.cnblogs.com/w397090770/p/11877730.html