Ali P8が推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装に関する注意事項を検討した後、ついに淘宝網に入る

この記事では、現象の本質を理解し、高性能、高並行性、およびリアルタイムシステムの設計とトレードオフを習得します。

リアルタイムストリームコンピューティングシステムの技術サポート、アーキテクチャモード、プログラミングモード、システム実装、コラボレーションシステムを高度に抽象化し、分散型リアルタイムストリームコンピューティングシステムをゼロから作成します。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

この記事では、リアルタイムストリーミングコンピューティングシステムの一般的なアーキテクチャパターンを要約します。

ストリームコンピューティングプログラミングフレームワークを最初から構築することにより、読者はストリームコンピューティングアプリケーションのタスクタイプを理解し、計算プロセスで遭遇するさまざまな問題や困難を解決する方法を学ぶことができます。

この記事は、Javaプログラム開発における「フロー」プログラミング手法の利点と面白さを読者に理解してもらうことを目的としています。さらに、シングルノードストリームコンピューティングアプリケーションを分散クラスターに拡張することで、読者は分散システムのアーキテクチャモデルを理解し、オープンソースコミュニティのさまざまなまばゆいばかりのストリームコンピューティングフレームワークを正確に表示できます。これらのストリームコンピューティングの本質をご覧ください。フレームワーク、および恐怖症の選択を避けます。

この記事では、リアルタイムストリームコンピューティングで解決できる問題と解決できない問題についても説明します。これにより、読者はストリームコンピューティングシステムの機能を理解でき、傲慢になりすぎません。

全体として、この記事を読んだ後、読者はリアルタイムストリーミングコンピューティングシステムを明確に理解して理解することができ、アーキテクチャ設計、システム実装、および特定のアプリケーションでうまく機能し、最終的に優れたリアルタイムストリーミングコンピューティングを作成できます。アプリケーション製品。。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第1章リアルタイムストリームコンピューティング;全体として、この記事の内容は「合計スコア」構造で構成されています。この章を読むと、リアルタイムストリーミングコンピューティングシステムの使用シナリオと一般的なアーキテクチャについて全体的に理解できます。次の章では、リアルタイムストリームコンピューティングシステムの各部分について具体的な分析と説明を行います。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第2章データ収集;この章では、データ収集モジュールに焦点を当て、NIOと非同期プログラミングに関連する問題を詳細に分析します。

これを読んでいると読者が混乱するかもしれません。この記事のトピックはリアルタイムストリームコンピューティングですが、これまでのところ、最も議論されているのは非同期とNIOです。実際、「フロー」と「非同期」の間には複雑な関係があり、「フロー」は「非同期」の重要な表現であり、「非同期」は実行中の「フロー」の本質です。現在、ストリーミングプログラミングはますます一般的になっています。一方で、「フロー」は実際のイベントのプロセスを自然に表現したものです。他方では、内部で実行すると非同期で並列になり、リソースの向上を最大化できます。効率とプログラム実行パフォーマンス。非同期プログラミングに関するこれまでの説明では、明らかに「フロー」に関連する「アップストリーム」や「ダウンストリーム」などの概念を非常に自然に使用しました。NIOと非同期を完全に理解することが、高性能プログラムを作成するための基礎であると言えます。ストリームコンピューティングシステムを実装していなくても、この知識は非常に役立ちます。上記が、この章がNIOと非同期に重点を置いている理由です。

次の章では、ストリーム内の金融リスク管理システムで特徴抽出モジュールを設計および実装する方法について詳しく説明します。このプロセスでは、ストリームと非同期の2つのプログラミング方法の類似点と相違点をより真に理解します。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第3章シングルノードストリームコンピューティングアプリケーションの実現。この章では、シングルノードリアルタイムストリームコンピューティングフレームワーク、つまりイベントの配信に使用されるキューとコンピューティングロジックの実行に使用されるスレッドを構築することにより、ストリームコンピューティングの2つの重要な基本コンポーネントを分析します。この記事の後続の章では、より複雑な分散ストリームコンピューティングフレームワークについて説明しますが、これによってストリームコンピューティングアプリケーションの基本構造を変更することはできません。

ストリームコンピューティングは非同期システムであるため、非同期システム内のさまざまなサブシステムの実行に一貫性がないという問題を厳密に制御する必要があります。この目的のために、対流計算システムの逆圧力関数の重要性を繰り返し強調してきました。内部で逆圧機能をサポートする流量計算アプリケーションのみが、長期間安定して確実に動作できます。「非同期」と比較して、「フロー」の計算モデルは、現実の世界で起こっていることのプロセスをより自然に記述し、ビジネスの実行プロセスを分析するときの私たちの考え方とより一致しています。したがって、「ストリーミング」により、非同期で同時実行性の高いシステムを構築する難しさが軽減されます。

ストリームコンピューティングアプリケーションの最適化は非常に有意義で価値のあることであり、構築するシステム(ビジネスロジックまたは技術的な詳細)をより深く理解できるため、プログラムの最適化に注意を払う必要があります。

この章では、特徴抽出モジュールのストリームコンピューティングアプリケーションフレームワークを構築しますが、特定の特徴計算は含まれません。特徴計算は、​​ストリームデータ処理の内容に属します。次の章では、ストリームデータ処理のすべての側面について説明します。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第4章データ処理;この章では、リアルタイムストリーミングコンピューティングシステムのデータ処理の問題について、ストリームデータ操作、時間次元集計機能の計算、相関マップ機能の計算、イベントシーケンス分析、モデルの学習と予測の5つの側面から説明します。

一般に、ストリームコンピューティングアプリケーションの将来の開発では、私たちが遭遇するコンピューティングタスクのほとんどは、上記の5つのタイプのコンピューティングに分類されます。さまざまな計算を実装する過程で、関連する操作期間ウィンドウと限られたメモリの間の矛盾、時間次元集計機能の計算における高ポテンシャルデータと限られたストレージスペースの間の矛盾など、さまざまな矛盾に遭遇しました。矛盾、関連するマップフィーチャの計算における複雑なグラフ計算アルゴリズムとリアルタイム計算の間の矛盾。結局、私たちは皆、さまざまな最適化、トレードオフ、または妥協策を採用することによって、これらの矛盾を解決しました。ただし、この本の著者の知識と能力の範囲が限られていることと、時間と技術の継続的な進歩により、この章で紹介する問題解決方法の多くは最適ではない可能性があります。将来の開発プロセスでは、読者はこの章の内容を基礎または参照として使用し、リアルタイムストリームコンピューティングにおけるデータ処理の問題を解決するためのより良い方法を模索し続けることを望むかもしれません。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第5章リアルタイムストリーミングコンピューティングの状態管理;この章では、リアルタイムストリーミングコンピューティングアプリケーションの状態管理の問題について説明します。リアルタイムストリーミングコンピューティングアプリケーションの状態を、ストリーミングデータ状態とストリーミング情報状態に分割します。

これらの2つの状態は、2つの異なる次元からのフローを管理していると言えます。フローデータの状態は時間の観点からフローを管理し、フロー情報の状態は空間の観点からフローを管理します。フロー情報状態は、時系列のイベントを管理するためだけにフローデータ状態の不足を補い、フロー状態を任意の空間に拡張します。

ストリームデータ状態とストリーム情報状態の2つの概念を分離することで、ストリームコンピューティングアプリケーション自体の実行プロセスをストリームデータの情報管理メカニズムから切り離し、リアルタイムストリームコンピューティングシステムの全体的な構造をより明確にすることができます。前者をCPUの実行パイプラインとして理解すると、後者はメモリに相当します。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第6章オープンソースストリームコンピューティングフレームワーク;前の章で紹介したオープンソースストリームコンピューティングフレームワークに加えて、Akka Streaming、Apache Beamなど、他の多くのストリームコンピューティングフレームワークまたはプラットフォームがあります。これらのストリームコンピューティングフレームワークには独自の特徴があります。たとえば、Akka Streamingは豊富で柔軟なストリームコンピューティングプログラミングAPIをサポートしています。これは素晴らしいと言えますが、Apache Beamはストリームコンピューティングモデルのマスターであり、ストリームコンピューティングを統合する準備ができています。

現在、ほとんどのストリームコンピューティングフレームワークはSQLクエリをサポートしているか、サポートする予定です。これは非常に優れた機能であり、ストリームコンピューティングに使い慣れた操作インターフェイスも追加します。ただし、この記事では「フロー」の計算モデルの最も重要なことに焦点を当てているため、SQLの「スキン」についての説明は省略しています。いずれにせよ、SQLが読者の使用シナリオに非常に適している場合は、SQLを理解して使用することをお勧めします。結局のところ、SQLは将来的にストリームコンピューティングプログラミングの一般的なモードにもなります。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第7章はリアルタイムではありません。この章では、単一のストリームコンピューティングフレームワークでは実際にコンピューティング目標を達成できない場合に、ラムダアーキテクチャを使用してリアルタイムコンピューティング目標を間接的に達成する方法について主に説明します。

ラムダアーキテクチャは、データ分析のプロセスを不変のデータセットに対する純粋関数計算として定義するデータシステムを構築するというアイデアです。データシステムの構築は2つのステップに分かれています。最初のステップはデータのバッチを収集して不変のデータセットを形成することであり、2番目のステップは不変のデータセットに対してデータ処理と分析を実行することです。このようなデータシステム構築の考え方は、オフライン処理部分だけでなく、リアルタイム処理部分にも適用できます。オフライン処理部分とリアルタイム処理部分はそれぞれ、Lambdaアーキテクチャのバッチ処理層と高速処理層を派生させます。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第8章データ転送;この章では、ストリームコンピューティングシステムでのデータ転送に焦点を当て、機能と役割が異なる3つのメッセージングミドルウェアについて説明します。

その中でも、Apache Kafkaは、その優れたスループットとストリーミングデータストレージ機能により、ビッグデータ時代のデータバスの役割を引き受けるのに非常に適しています。RabbitMQは、データの信頼性が高く、リアルタイムパフォーマンスが高く、豊富なデータをサポートしています。 AMQP標準への準拠。さまざまな言語のクライアントは、リアルタイムストリーミングコンピューティングシステムの構成バスとして使用するのに非常に適しています。Apach.Camelは、その柔軟なルーティング機能と、基盤となるメッセージミドルウェアの一貫したカプセル化により、朗報です。さまざまなデータプロトコルポート。サービスレイヤーミドルウェアは、基盤となるメッセージミドルウェアを効果的に管理できます。

この章では3つの特定のメッセージミドルウェアについて説明しますが、それらの機能的な役割は異なります。著者は、読者がストリームコンピューティングシステムにおける3つの異なる役割メッセージミドルウェアのそれぞれの役割と責任を理解し理解できるようにすることにもっと関心を持っています。特定のメッセージミドルウェアについては、この章で説明した3つのメッセージミドルウェアの他に、ZeroMQ、ActiveMQ、Apache RocketMQ、Apach.PulsarApacheKafkaなど多くの種類があります。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第9章データストレージ;この章では、リアルタイムストリーミングコンピューティングシステムに関連するさまざまなデータストレージの問題について説明します。

実際、リアルタイムストリーミングコンピューティングシステムだけでなく、ほとんどすべての比較的複雑なシステムでも、データストレージソリューションの設計は非常に重要です。データストレージスキームが不適切に設計されている場合、システム内のデータが一定量まで蓄積されると、サービスの遅延が必然的に増加し、最終的にはサービスが利用できなくなります。一般的に、現時点では、システムにはすでにかなりの量のデータとステータスがあるため、修復と変更の操作は時間と手間がかかり、ビジネスでさえ中断することしかできず、問題はオフラインで解決できます。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第10章サービスガバナンスと構成管理。この章では、主にサービスガバナンスと動的構成の問題について説明します。

これら2つのストリームコンピューティングシステムの本体以外の問題について議論する理由は、特定のビジネス問題を解決するために構築するシステムが、ストリームコンピューティングアプリケーションだけでなく、有機的な全体であるためです。リアルタイムストリーミングコンピューティングアプリケーションをコアとして使用しても、周囲のシステムと十分に統合されていないと、その後の開発、運用、保守、および製品の反復が困難になります。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

第11章リアルタイムストリームコンピューティングアプリケーションケース。この章では、2つのリアルタイムストリームコンピューティングアプリケーションケースを使用して、前の章の断片的な知識ポイントを要約します。目的は、読者がこれらの知識ポイントをより明確に理解できるようにすることです。 2つのケース。コンピューティングシステムの役割と場所。

CompletableFutureフレームワークによって実装されたDSLユーザーインターフェイスを備えた特徴エンジンは、データストリームの特徴抽出のための一般的なツールです。このツールはまだ比較的初歩的なものですが、機能エンジンを構築するための一般的な構成モデルを表しています。たとえば、Flinkを使用して、実行プラン実行レイヤーに実装したストリームコンピューティングフレームワークを置き換えることができます。その後、イベント処理シーケンスの保証、保証など、構築したホイールの多くの欠陥を補うことができます。障害回復後の状態の一貫性、より柔軟なリソーススケジューリング、より便利な分散状態管理など。

Ali P8とPDFが推奨するリアルタイムストリーミングコンピューティングシステムの設計と実装を学んだ後、ついに淘宝網に入る

 

この[リアルタイムストリーミングコンピューティングシステムの設計と実装]ドキュメントは、合計418ページです。記事の内容の制限により、エディターはここでこれ以上紹介しません。フルバージョンが必要な場合は、これを転送できます。記事。エディターに従って、コードをスキャンしてください。以下から入手してください。

聴衆

この記事は、主に次の読者に適しています。

  • Javaソフトウェア開発者;
  • リアルタイムコンピューティングのエンジニアとアーキテクト。
  • 分散システムエンジニアおよびアーキテクト。

おすすめ

転載: blog.csdn.net/bjmashibing001/article/details/111996742
おすすめ