確かに我々はそれがクラッシュスパークどうなるかサーバレスと組み合わせてよりよく理解RocketMQニュースサービス、RocketMQがありますか?その後、我々はどのようにクラウドベースのRocketMQ + Knativeドライブサーバレスネイティブアプリケーションについて、今日紹介します。主な著者は、いくつかの便利な導入しました:
- クラウドネイティブとサーバレス
- Knativeプロフィール
- RocketMQSource
- 食品流通のシナリオ例
クラウドネイティブ
CNCFネイティブクラウドの定義を見て:
パブリッククラウド、プライベートクラウドとハイブリッドクラウドや他の新しいダイナミックな環境、ビルドで組織に有利なクラウドネイティブアプリケーション技術と弾性的に伸長実行します。ネイティブコンテナを含むクラウド技術、サービスグリッド、マイクロサービス、インフラおよび不変の宣言型APIを代表して。
これらの技術は、管理が簡単かつ疎結合システムを観察しやすい、フォールトトレランスを構築することができます。信頼性の高い自動化された手段と組み合わせることで、ネイティブのクラウド技術を簡単に大きな変化のために頻繁に予測可能なシステムを作るために、エンジニアを可能にします。
実際には、ベンダーと顧客をクラウドクラウドサービスの融合の標準化された方法を提供するために、ネイティブの目的を曇らせます。この顧客は、顧客が常にクラウド・ベンダーと交渉する能力を保持するように、クロスクラウドとクラウド移行のコストを削減するための方法、クラウドメーカー、低コストのクラウド間で顧客の移行理由は、あまりにも長い間、彼らはより多くの費用対効果を提供して高いクラウドサービスは、それが簡単に多数のユーザーを集めることができます。
サーバレス
サーバーレス(NOサーバアーキテクチャ)は、イベントによってトリガ容器、完全にサードパーティの管理を計算ステートレスで実行し、開発者によって実装サーバ側ロジックを指し、そのビジネスレベルの状態は、データベースまたは他の媒体に格納されています。
インフラに焦点を削減しながら、サーバレスは、より多くの開発者がビジネスロジックに集中するように、それらの本来の雲の技術開発の進んだ段階として理解することができます。
機能サーバレスはここで述べたように、実際には、機能サーバレスに加えて、別のアスペクトサーバレスがあります:サーバレスはコンテナ化。機能サーバレス、コンテナサーバレス、よりポータブル、より良いコントロールに複雑なアプリケーションの開発者と比較すると。また、経験豊富なユーザーの洗礼時代のコンテナのために、サーバレスのコンテナものがより良い選択かもしれません。
サーバレスの場合は、以下の点を見てする必要があります。
- イベントは、(イベント)ドライブ:サーバレスのイベント(イベント)によって駆動される(例えばHTTP、パブ/サブ)は、完全にサービスを計算管理されています。
- オート柔軟性:オンデマンド、ピーク負荷シフトします。
- 使用ごとの課金:サーバレスのシーンの下でリソースの使用で従来のサービス(ECS例、VMの仕様など)課金、と比較するとは、より多くのサービス(呼び出しの回数、期間など)の使用量に応じている請求
- グリーンコンピューティング:いわゆるグリーン・コンピューティングは、実際に資源の無駄を削減、資源利用の効率を高めるために最大化され、「省エネ」を行います
Knative
サーバーレスの上記容器は、その後、そのようなServelessプラットフォームフレームワーク、それが存在しませんか?答えは次のとおりです。Knative
Knativeは、サーバレスのオーケストレーションエンジンKubernetesに基づいて2018年のGoogle Cloud次総会で発表されました。非常に重要な目標は、クラウドネイティブ、クロスプラットフォームの標準的なサーバレス振り付けを開発することであるKnative。Knativeを達成するために、コンテナの統合、サーバレス標準のワークロード管理(弾力性)と3つのイベントモデルを通じて構築された(または機能)されます。現在Knativeコミュニティの主な要因には、Google、ピボタル、IBM、RedHatのを持っています。またCloudFoundryのように、OpenShiftこれらのPaaSプロバイダが積極的に関与Knative建物です。
Knativeコアモジュール
Knativeコアモジュールは、ワークロードの展開をイベンティング・サービングイベント駆動型のフレームワークを含みます。
サーバレスサービスエンジン - サービング
Knativeコアコンピタンスにサービスを提供することはサーバレスをサポートする能力の基礎であり、そのシンプルかつ効率的なアプリケーションのホスティングサービスです。Knativeが提供するアプリケーションのホスティングサービスを大幅に反復効率とサービス配信アプリケーションを改善し、複雑さと直接操作のKubernetes資源のリスクを減らすことができます。もちろん、Severlesss Frameworkは、オンデマンドのリソースなしで行うことができない能力として、アリクラウドコンテナサービスは、自動ボリューム削減インスタンスの数の量を減らすために要求した後、非常に自動化することができたときに、ピーク時にアプリケーションのインスタンス数の拡大を要求された量に応じて自動的にKnativeヘルプあなたはコストを節約。
Istioに結合することによりサービングも強力かつ柔軟なトラフィック管理機能が発行する機能をグレースケール提供します。また、能力がオンラインタグ、彼らは非常に簡単CICDとシステム統合により自己を定義する前にリリースされた階調をテストしながら、トラフィック管理機能では、トラフィックフローの分割の割合の割合に応じた階調に応じた階調を公開することができるかもしれません。
アプリケーションモデルをサービング
- サービス:抽象アプリケーションサーバレス振り付け、サービスライフサイクル管理アプリケーション
- 構成:現在の構成状態の期待。各アップデートは、コンフィギュレーションサービスを更新します
- リビジョン:各アップデートの構成は、バージョン管理に使用されるスナップショットを作成します
- ルート:ルートの改訂への要求、および転送トラフィックを異なるリビジョンの異なる比率に
イベント駆動型のフレームワーク - 総合馬術
1.イベント・トランスポート・プロトコルとしてCloudEventの使用:CloudEventは、共通フォーマットのイベントデータを記述するクロスプラットフォームの双方向サービスの能力を提供します。大幅クロスプラットフォームアプリケーションの移植性向上イベント伝送規格として使用CloudEventをKnativeEventing
2.外部イベント・ソースへのアクセスと登録を:サポートGitHubの、そのようなソース及びカフカとしてRocketMQイベントは、もちろん、ユーザは、イベントソースを定義することができます。
3.に登録し、イベントをトリガ:ブローカーとモデルの意義トリガーの紹介、イベントだけでなくするユーザーを遮断達成するために複雑な処理が、また、メカニズムをフィルタリングし、イベントサブスクリプションの富を提供します。
既存のメッセージングシステムとの互換性4:KnativeEventing実質的メッセージング・システムの実装デカップル、メモリベースのメッセージチャネルInMemoryChannelによってサポートされる現在のシステムの他にもすることができ、容易に従来のバットに加えて、他のメッセージングサービスをNATSStreaming、カフカをサポートメッセージングシステム。
ブローカー/トリガモデルにイベンティング
ここでは総合馬術ブローカー/トリガモデルは、複雑ではありませんものです。ブローカへのイベントの外部イベント・ソースは、ブローカがトリガー加入ブローカを作成することによって、サブスクライブイベントを達成するために、対応するチャネル(等カフカ、InMemoryChannel、として転送即ちメッセージバッファ)に送信されるイベントを受信した後、さらににおいてトリガに定義され究極のイベント駆動型サービスを実現するために、サービスに対応します。
RocketMQSource
RocketMQSourceはRocketMQイベントソースKnativeプラットフォームです。それはKnativeプラットフォームに転送リアルタイムでクラウドイベントRocketMQクラスタ形式にメッセージすることができ、それはApahe RocketMQとKnative間のコネクタです。
Knative + RocketMQシナリオ例 - 食品流通シーン
私たちの次の例では、食品流通のシナリオは次の特徴があり、食品流通に示します。
- 食品流通の日の記憶明らかピーク、谷。
- ピーク時にシングル大音量
このような状況のために、我々は、それによってコストを削減し、大幅にリソースの利用率を向上することができるオンデマンド、時間の一番下にあるリソースを削減、ピーク時のリソースのメッセージ駆動型サーバレス、自動拡張を使用します。
次のように一般的なアーキテクチャです。
食事の時間になると、RocketMQSourceにより、次世代RocketMQに送信された単一のメッセージを発注する顧客はブローカーにイベントに単一のメッセージを取得し、生成されたトリガ・イベントファイナルドライブサービスの受注により、サブスクリプションのご注文は、単一の注文します。この方式では次のような利点があります。
- 食品流通システムのサーバレスサーバーの中核としてRocketMQ技術へのKnativeによって運用および保守コストを削減し、大幅にすることができます。
- Knative柔軟性は、あなたが簡単に朝食、昼食、夕食のピーク需要のリソースに対処することができます
- RocketMQは、問題に長いリンク呼び出しを避けるため、システムの可用性を向上させるために、非同期のデカップリング・システムを実行します。
オペレーティング
展開Knative。
展開RocketMQSource
Knative管理コンポーネントでは、RocketMQSourceクリックの展開を選択します。
展開のためのサービス
参考例のコードリポジトリ:https://github.com/knative-sample/knative-rocketmq
キー展開serviceコマンドを次のように
kubectl apply -f 200-serviceaccount.yaml -f 202-clusterrolebinding.yaml -f 203-secret.yaml -f alirocketmqsource.yaml -f broker.yaml -f ksvc-order-service.yaml -f trigger.yaml
アナログピーク注文受注。
単一のシミュレーションによって、及びRocketMQ缶にメッセージを送信します。メッセージ形式リファレンス:
{"orderId":"123214342","orderStatus":"completed","userPhoneNo":"152122131323","prodId":"2141412","prodName":"test","chargeMoney":"30.0","chargeTime":"1584932320","finishTime":"1584932320"}
デモンストレーション効果が示されています:
他のシナリオ
Knative + RocketMQ典型的なシナリオ - ビルドサーバレスの電力供給システム
- Knative回復力は、簡単な二重の11の電力供給者の大きなプロモーション活動として、購入を対処するのを助けることができます
- RocketMQシステムは、システムの可用性を向上させ、長いリンク呼び出しを問題を回避するために、非同期のデカップリングを中心にします。
Knative + RocketMQ典型的なシナリオ - 建物のアラーム監視プラットフォーム
- メトリック、ログRocketMQ他のクラスタのデータのプッシュサービスKnative
- このよう釘やたるみのコミュニケーションツールとして、データ分析意志警報プッシュコンテンツを通じてKnativeサービス
- Knativeサービスは、メトリックまたはログデータ処理することができ、サードパーティシステムをプッシュ
Knative + RocketMQ典型的なシナリオ - 複数のデータフォーマット変換
- 複数の結果並びにその誘導体を生成するために、データログを処理し、これらの結果は、デリバティブ業務、マーケティングと販売のために使用することができます。
- ある形式から別の形式にコンテンツの変換は、例えば、Microsoft WordはPDFに変換されます。
- メインのメディアファイルをさまざまなフォーマットに変換する必要があります
概要
- RocketMQイベント駆動型アプリケーションサーバレスKnative
-
シナリオ
- 注文、テイクアウト
- 購入、リミット買い
- アラーム監視プラットフォームの構築
- 複数のデータ形式の変換
- 物流、流通
-
ソース