序文
長い時間は、主に二つのゲーム、中国のソフトウェアボウルの8分の1をやって忙しい最近2ヶ月で、ブログを書いていない、と他のはアリの5番目のミドルウェアパフォーマンスチャレンジであり、他は忙しいです秋に前進する準備ができて、それはほとんど、3ヶ月間のブログを書いていない、最近、中国のソフトウェアカップ、アリ第五ミドルウェアのパフォーマンス挑戦も予選を終え締結し、その2を合計する自由時間を活用します試合。
業績に関する最初の報告は、中国のソフトウェアカップ第三賞を受賞しましたが、(国民)、第五ミドルウェアパフォーマンスチャレンジ予選第6(4094チーム)を終え、我々は今、準決勝を入力しました。
競争の初めに、私はこのゲームについて非常に失望を感じるすべての最初の、かなり意外なことに、私のためにすべてのこの成果の最初、私は中国のソフトウェアカップ大会の結果についてお話しましょうゲームはこのゲームは技術のクラス、最終結果やバイアスに属することであるとき、ゲームのPPTタイプで、いわば理由として、私はここを見Tucaoする必要があり、私が出席したタイトルマッチは、おそらく企業のトピックを使用して、クラウドプラットフォームの監視警報システム上にあるHTTP API
これらを通じて、その後のクラウドサーバーのパフォーマンスメトリックを取得し、 、監視するために、ルールは、ユーザー定義のアラームがトリガされると行の指標、タイトルマッチの需要は何も問題が、明瞭さ、遵法を探すときとき、私と私のチームメイトのタイトルマッチを達成する必要があります、それは最終的に賞の指標を停止します決勝戦は、(私が決勝に到達するためにのみ、3つのチームに参加したタイトルマッチ)を入力していませんでした。最終的なビデオを見てシーンの背後にある、成果はファイナリストチームのことを学んだ、彼らが実際に使用し、人工知能、ブロック鎖、顔認識、ARので、この人気のある技術APIからブロックチェーンの技術サポートを利用します取得したデータが....監視情報、身元を確認するために、顔認識の使用に人工知能を使用して表示するARクラウドサーバの使用、改ざんされないように、失われていないサウンドを高速なハードウェア技術は積み重ね私は、彼らが最終的に達成していないなんて言わないで、そこにこれらの監視警報システムでは何も話すことはありません、だけではこれらの用語は、「専門家」のルールは服従を植え付ける入れて、それが決勝に不思議ではない、私は背が高く、これらの技術にありましたそして、私はチームメイトをかけていない、最終ゲームは唯一の賞を取得します。
あなたの第五ミドルウェアパフォーマンスチャレンジ予選を伝えるために、非常に満足し、私の結果は、予選の最初の日は5位を取った後、別の後に中央の1にも、最終的なスコア最初の数日間となっています予選の最初の日から、私のランキングの終わりに始まるので、最初の6のために、一般的に、この結果は、驚くべきことではないフロントです。
どちらの試合はここで停止し、その後、次は最終的に、ソースコード、完成した映像を伴って、中国のソフトウェアおそらくカップに参加するために自分のアイデアやチームメイトを共有する隣です。
さらにいくつかの言葉が私の次のアイデア第五ミドルウェアパフォーマンスチャレンジ予選について書いている場合〜親指の賞賛を指すことができます友人のように。
タイトルマッチ分析
コンテストの問題住所:Huayun功に基づき、クラウドプラットフォームを持っている、パブリッククラウド監視システムの設計
ユニバーサルクラウドの現在の時代では、単一のアプリケーションが急速に増加し、ビジネスの要求を満たすことができなかった、私たちはアイデアを設計サービスに合わせて複数の小さなビジネス機能に単一のアプリケーションを分割することで、各サービスは異なるサービス、専門の小規模なビジネス機能を提供します間とすることができるRPC
、またはHTTP
システムが複数のサービスに切り離すことができるように、通信、各サービスは、独立して配備、保守及び管理を開発することができるだけでなく、サービスの水平方向の拡張に基づくことができ、よりきめ細かいです延長。
アーキテクチャの設計
全体的なアーキテクチャ
タイトルマッチの需要によると、私たちは、業務システムは、5つの主なサービスに分割される従います。
- データ収集:異なるアプリケーションからのデータの収集、データクリーニング後にメッセージキューミドルウェアに掲載されます。
- データ記憶検索:外向きに検索サービスを提供しながら、データの永続性の主な機能。データがデータベースに保持されながら、データの損失を防ぐために、データの検索を容易にするために、非同期検索フレームワークに格納されたデータを処理し、メッセージ・キューをサブスクライブすることによって収集したデータ。
- アラームのモニタリング:主な機能は、警察にカスタムアラームルールと例外を提供することです。外向きインタフェースがを通して、カスタマイズされたアラームルールを提供する
RPC
データは、ルールを満たす場合、及びデータ記憶および検索を取得するためにデータ・サービス・コール、自動警告アラームの統計分析。 - 統一されたサービス層:主な機能は、外部に設けられた様々なサービス統一する
API
通信。 - フロント:主な機能は、ユーザーがアラームカスタムページ、ホストのパフォーマンスデータ、クラウド視覚表示を監視し、ホスト管理業務をクラウド提供することです。
Huayunデータ収集のためのリアルタイムデータ収集システムは、することにより、データ、データ収集およびデータの格納と検索の妥当性を確保するためRabbitMQ
に頼っている間、その広大な収集されたデータの量可能性を提供し、デカップリング、非同期の目的RabbitMQ
信頼性の高いニュースを提供するために、 、データの信頼性を確保します。加入することにより、データ記憶検索RabbitMQ
格納されるリアルタイムデータMySQL
とElasticsearch
により、Elasticsearch
検索効率を向上させるように可能な限りデータ検索の膨大な量。
リアルタイムの監視およびアラームデータの監視、分析、統計、アラームデータはルールと一致しているとき、それは渡されますEmail
、ユーザーがクラウドホストのよく知って確保することができ、速やかにユーザーに送信されたSMSのアラーム情報を。ユーザは、アラームルールをカスタマイズすることができ、それは他の情報に沿って常にあるときアラーム又は警報のルールに沿って、そのような監視パラメータ、監視期間、サイクル数としてアラームルールの多次元セットすることができ、ユーザがホストをクラウドに許容します多次元のパフォーマンスコントロール。
統一されたサービス層のデータ保存と検索、アラーム監視、管理、統一および統合されたクラウド統一外国提供ホスティングAPI
操作を。
遠位端は、クラウドホスト管理、データの可視化、アラーム監視インターフェースをユーザに提供します。
技術選択
1.開発言語
この論文では、Java
主としてに開発言語、としてJava
高い安定性、高安全性、それは巨大な生態系を有しているだけでなく、クロスプラットフォームの特性を有しているので、この紙Java
開発言語として。
2.開発フレームワーク
本論文では、Spring Boot
システム開発のためのフレームワークとして、ので、Spring
フレームエコシリーズは急速に発展し、機敏な展開だけでなく、後半の保守性を向上させるためにすることができ、非常に良いです。マイクロサービスの可能性を提供し、実行するためのアプリケーションとしてパッケージングシステムをサポートしながら、一連の枠組みの下で、サブプロジェクト、我々はすぐに、サードパーティ製のフレームワークを統合することができます。Spring Boot
Spring
3.メッセージキュー
本論文では、RabbitMQ
ミドルウェアメッセージキュー、なぜならRabbitMQ
、低レイテンシ、高可用性、高メッセージの信頼性。
4. RPCフレーム
紙は、Dubbo
のようにRPC
フレームワーク、Dubbo
高性能アプリケーションができるように、サービスフレームのオープンアリババ優れた高性能でRPC
エクスポートおよびインポート機能はサービス実装されていてもよくSpring
シームレスに統合フレーム。
5.分散サービスフレームワーク
この論文では、ZooKeeper
分散サービスフレームワークとしてZooKeeper
分散アプリケーションのための分散、オープンソースのコーディネーションサービスです。
全文検索のフレームワーク6
本論文ではElasticsearch
、ElasticSearch
それが基づいているLucene
検索サーバ。これは、フルテキスト検索エンジンベースの分散型マルチユーザ機能を提供RESTful web
インターフェイスを。Elasticsearch
それはされてJava
開発された、としてApache
オープンソースライセンス条項の下でリリースされ、人気の企業向け検索エンジンです。、安定した信頼性の高い、迅速かつ簡単にインストールするリアルタイム検索を実現するために、クラウドのために設計されています。
7.キャッシュフレームワーク
採用テキストRedis
キャッシュ・フレームワークとしては、Redis
オープンソースの使用でANSI C
もログのメモリ永続タイプに基づくことができる言語、サポートネットワーク、Key-Value
データベース。
8.データベース
紙、MySQL
データベースシステムなど。
バックエンドの実装
データ収集
トラフィックログデータの収集とは、さまざまなデータソース、およびデータのフィルタリング、分析、豊富な、均一なフォーマット動作から動的データを収集し、その後の使用のために格納され、別のサーバーログが統一された発生達成するために、引き出し経営陣は、ログデータの一元管理は非常に重要な役割を持っています:
- ログ解析:ログサーバを表示するために中に入る必要性を排除することによって、ログ統合プラットフォームログ分析を通じて、統計、運用・保守。
- データを探す:ログ、負荷制御、サーバの動作状態を取得することによって。
、Huayun提供定期的なタスクのクラウドホストのパフォーマンスデータを介して取得するので、データの一貫性と華Yunguanのパーティのデータを保持し、リアルタイム性を確保するために、データの妥当性。メッセージキューミドルウェアにデータを公開するために、唯一の有用なデータを保持しながら、洗濯取得したデータ、RabbitMQ
インチ セクタによって切り替えるhuayun.fanout
公開するメッセージhuayun.es
とhuayun.persistence
元にメッセージを格納するための、2つのキューにElasticsearch
メッセージを格納するために、後者MySQL
に。
保障措置データの信頼性のメッセージ遅延配信することで、アップストリームサービスデータ収集は、消費者向けニュースサービスに続いて、RabbitMQのにメッセージを送信し続けることのRabbitMQの遅延の後、メッセージにデータを送信します、我々は下流のRabbitMQに配信されるメッセージ、コールバックサービスをキャンセルさせて頂きますCallback Service
サブスクリプションで下流の配信サービス取消メッセージ、メッセージが遅延した後にメッセージを取得するためにコールバックサービス後のRabbitMQの上流のサービス提供を到着したときに遅延が、それはメッセージが入ってくる下流のサービスを受けていないことが判明した場合、メッセージが正常に消費されたかを知ります取消メッセージは、アップストリームサービスの上流のサービスを再起動するコールバック・サービスは、メッセージ配信の信頼性を確保するために再ルーティング。
データの保存と検索
使用してElasticsearch
も、効率的な検索機能を有しながら、高い拡張性を持つデータのフルテキスト検索を迅速に検索することができる大量のデータのために、サーバー、PBレベルのデータ処理の数百に拡張することができます。使用Dubbo
+ ZooKeeper
使用して外部の分散RPCサービス提供Zookeeper
分散型サービス管理を、サービスプロバイダーは、レジストリサービスに放出され、サービスの消費者は、レジストリを通じてサービスに加入することができ、サービスプロバイダがサービス変更の通知を受け、使用Zookeeper
が可能な状況分析を監視するためのサービスを呼び出します。
ミドルウェアメッセージキュー購読RabbitMQ
、Elasticsearch
キューを聞くことによってサービスレベルをhuayun.es
、ニュースに達しキュー、RabbitMQ
メッセージを超えるプッシュするためのイニシアチブをとるだろう、Elasticsearch
受信したメッセージのサービス層が保存されているElasticsearch
中で。同様に、MySQL
サービス層もプッシュメッセージ上に格納されMySQL
ています。
データ永続性サービスのデータの記憶及び検索を提供することに加えて、だけでなくによって、外部データ検索サービスを提供ZooKeeper
することにより、登録された検索サービスをDubbo
提供しますRPC
。
監視警報
開発者を許可する、カスタムルールは、異常なサーバーが表示されたため、アラーム監視をタイムリーにユーザーに通知することができますが、リアルタイム監視を実行しているサーバーは、アラームメッセージが送信され、あなたができるマルチ次元を提供するために、サービスデータの保存と検索に基づいて、一見はすぐに解決するために、どこの問題を見つけることができます。
サブスクライブすることによってアラーム監視Zookeeper
を介してサービス情報を取得しDubbo 获取到数据存储与检索提供的检索服务,基于检索服务对数据进行检索和分析,根据报警规则定时的去对数据进行分析,当数据满足报警条件时自动进行报警,将报警信息实时的发送发给用户,同时将报警信息存储到
MySQL
、将来のお問い合わせにためです。
ユーザは、多次元このような監視は、監視期間、サイクル数などのプロパティをアラームルールを設定するようにしてもよいし、しきい値アラーム等をトリガーします。
統一されたサービス層
統一提供するために、外国統一サービス層API
のフロントエンドは、統一されたサービス層を介して提供することができるAPI
データ、設定したアラームルール、クラウドホスティング、画像の管理やスナップショット管理の管理を取得するために。
することによりRPC
、検索データやアラーム監視サービスを使用して、増加させることにより、Redis
バッファ層を、クエリの結果がキャッシュされたRedis
効率性を高め、。
ソース
オープンソース私たちのチームワーク、歓迎批判
デモビデオ:www.bilibili.com/video/av610 ...
オリジナル住所:ddnd.cn/2019/07/28 / ...