春ブーツ、マイクロサービスアーキテクチャとビッグデータの管理との間に紙読み物語

マイクロサービスアーキテクチャ

マイクロサービスの誕生は、技術と伝統的な建築の急速な変化は、複数の要因およびその他の製品によって駆動急激な変化の誕生に適応することはできません、それはインターネットの急速な発展で、偶然ではありません。インターネット時代、製品の2種類があり、通常は特性である:需要の急速な変化と大規模なユーザーコミュニティ、この場合では、需要の変化に迅速に対応するようにシステムを拡張することは容易で柔軟な構築するシステムアーキテクチャの観点から、続行するか、同じ時間、と増加のユーザーは、システムのスケーラビリティ、高可用性を確保する方法、システムアーキテクチャは、チャレンジに直面しています。

あなたは伝統的な開発モデルの前に従っている場合は、大規模な、フルシステムの開発は、技術に対する市場の需要を満たすことは困難であった、とこの時分割統治のアイデアを出したので、我々は分散アーキテクチャに単一のアーキテクチャから開発している、と分散からインフラを開発するためのSOAアーキテクチャ、サービスはマイクロサービスアーキテクチャの誕生まで、より小さく、より小さなサイズを取得し、分割してブレークダウンされ続けています。

マイクロサービスアーキテクチャ遺産SOAアーキテクチャは、ほとんどの本質的な違いの一つは、サービスが本当のマイクロ分散型、分散型であるということです。すべての「反射」は、ルーティングロジック、分析又はサービスメッセージの内部に配置さ等を含む統一ESB、サービスとの間の光通信を除去し、SOA分割より徹底的です。マイクロサービスアーキテクチャの重点は、これらの小さなアプリケーション間の小さなアプリケーション経由のビジネスシステムは、徹底した組立技術とサービスを必要とし、元の単一のビジネス・システムは、複数の独立した開発に分割することができ、設計、運用、および運用・保守にありサービスの相互作用と統合の完了。

約2009、Netflixが完全に、2014年3月Martin Fowler氏が記事を書いたまでマイクロサービスの探査を開始するには、まずそのアプリケーションの開発・運用モデルを再定義  Microservicesを  、よりユーザーフレンドリーな形での我々はマイクロサービスアーキテクチャであるかを定義として。マーティン・ファウラーは、マイクロサービスアーキテクチャはアーキテクチャー・パターンであり、それはユーザに究極の値を与える、互いに補完し、サービス間の協調、より小さなサービスのセットに単一のアプリケーションを提唱していること、テキストにマイクロサービスアーキテクチャの概念を説明します。

各サービスは、サービスとサービスの採用との間に互いに(通常はHTTPベースのRESTful API)と通信するための別のプロセス、軽量な通信機構で実行されます。各構築するための具体的なビジネスの周りのサービス、および独立ように生産環境、生産のような環境に展開してすることができます。また、あなたはそれらの建物のための適切な言語ツールを選択し、特定のサービスのための統一、集中サービス管理メカニズムは、ビジネスコンテキストに基づくべき避けるべきです。

マイクロサービスアーキテクチャとデータガバナンス

マイクロサービスアーキテクチャが上陸すると、それはマイクロサービスアーキテクチャが開発モデルを改善するためにことを発見し、それはまた、いくつかの問題を紹介しました、ですべての問題の問題は、最も重要なのが直面しようとしていることは、データの問題です。マイクロサービスアーキテクチャでは、我々はそれぞれのマイクロ独立して展開することができるサービスや生産の完全な組み立てとサービスを重視し、実際には、それはマイクロサービスの多くは、独自の独立したデータベースを持っていることを意味し。

1、データクエリのための完全なビジネス管理システムは、そのようなページングクエリとして、そのような多基準クエリとして、データを統合する方法に分かれています全体の業務データは、最も明白な問題のうちの2つをもたらす各サブサービスの後に散乱されますか?2、どのようにデータマイニングの分析を促進するには?これらの要件は、データの全体量を分析する必要があり、かつ現在のビジネスの分析に影響を与えません。

技術的なプログラムが関係していることから、我々は一般的に、これらの問題に対処するための2つのオプションがあり、最初のものは、第二は、オフラインのデータ処理で、データのオンライン処理です。

オンラインデータ処理プログラムを取得するために設けられたマイクロサービスにバックエンドシステムコールインターフェースを移動する必要があり、標準的なマイクロサービスへのインタフェース、データに応じました。データを取得し、データ処理が返された後にデータを返すために、フロントエンドのニーズに基づいて、異なるマイクロサービスシステムにバックエンドの管理プラットフォーム。このアプローチは、2つの欠点を有する:1)一方ミクロデータサービス側のデータは、メソッド呼び出しを記述する必要があり、ユーザの一方で、データ・インターフェースを提供する必要があり、発信者がデータ処理のための多くのコードを書く必要があり、2)それぞれにマイクロマイクロは、サービスデータを取得しながら、通常のトラフィック処理能力とサービスに影響します。

オフライン処理データのソリューション、上のデータ同期後に、データのビジネス側の需要を満たすために、同期の過程で、データ統合処理別のデータベースへのビジネスデータの準リアルタイム同期で、そしてプロフェッショナル別のサービス・インターフェースを提供外部出力データを担当します。このプログラムは二つの特徴があります:1)データ同期プログラムが鍵を、技術選択の多くは、企業のビジネスを満たすために技術的なソリューションを選択する方法がある; 2)オフラインのデータ処理は、通常のマイクロサービスの業務処理に影響を及ぼしませんでした。

個人は2番目のオプションを好むて私の前の仕事では、2つのプログラムが実装されています。

MongoDBのデータ解析

MongoDBの開発者はデータベース、デエンファシス従来のリレーショナルデータベースの行と列の最も友好的、テーブル全体がJSON文書として見ることができ、それを呼び出す、MongoDBはまた保持、ほとんどのNoSQLデータベースのリレーショナルデータベースのようなNoSQLと考えられ同様のリレーショナルデータベースデータベース(データベース)、収集(コレクション)、ドキュメントオブジェクト(ドキュメント)。

MongoDBのはMongoDBのデータベースは、最新のランキングで5位非リレーショナルデータベースのすべてで1位、最も人気のある非リレーショナルデータベースの一つであり、それは非常に広く国内外のインターネット企業で使用されています。

最大の特徴は、その構文は、機能のほとんどは、リレーショナルデータベースに似た、ほぼ単一テーブルクエリを達成することができ、オブジェクト指向のクエリ言語に似ていますが、また、データのインデックス作成のサポート、MongoDBのクエリ言語のサポートは非​​常に強力です。MongoDBのを読み書きするためにバランスをとることは非常にシンプルかつフレンドリーで、高可用性と負荷に実装され、MongoDBのレプリカセットとドライバの適切な設計により、レプリカセットの概念が付属しています、それは非常に高い可用性を実現することができ、負荷分散を読み書きします。

MongoDBのこれらの特性は、高パフォーマンスのデータクエリのために非常に便利です、MongoDBは除算の集計とMapReduceの使用の概念をサポートし、大規模データ解析を処理するルール。MongoDBのための春のブートサポートは春ブーツMongoDBのクエリや処理操作を使用することは非常に便利な、非常にフレンドリーで、春ブートパッケージには、MongoDBのを使用するためのサポートを提供します。

MongoDBの4.0が正式にACIDトランザクションのサポート、さらに大きなの将来のMongoDBの想像を発表されます!従ってMongDB +春の起動は、データ分析のための理想的なマイクロサービスアーキテクチャの一つです。

春ブーツを話してきます

春ブーツは、開発プロセスだけでなく、初期のビルド新しいSpringアプリケーションを簡素化するために設計されてピボタルチーム、によって提供される新しいフレームワークです。フレームワークは、開発者がテンプレートの構成を定義することはもはや必要であるように特定の方法が設定されていないことが使用します。春ブーツが大幅に開発モードを簡素化することができます使用して、共通のフレームワークを統合したいすべて、それが対応するコンポーネントをサポートしています。

春ブーツSpringベースの開発は、Spirngブート自体はコア機能とSpringフレームワークの拡張機能を提供していませんが、迅速なため、機敏なSpringフレームワークに基づいた新世代のアプリケーションを開発しています。それは春のアプローチに代わるものではありません、ですが、春の開発者の経験を持ち上げるためのSpringフレームワークと緊密に統合されたツール。同時に、それは(などのRedis、MongoDBの、JPA、RabbitMQの、クォーツ、など)一般的なサードパーティのライブラリ構成の数が多い、これらのサードパーティのライブラリの春ブートアプリケーションボックスのうちほぼゼロコンフィギュレーション、春のブートアプリケーションのほとんどを統合します唯一の開発者がビジネスロジックに集中することができ、構成コードの非常に少ない量を必要とします。

春ブーツは一度オープンソースコミュニティで引っ張りだこに発売し、春ブーツの公式は、多くの先発が簡単にサードパーティ製品を統合しています、多くの主流のフレームワークはまた、MyBatisのような能動統合、となっています。春春のブート公式が開発を重視して、春の重要な勧告は、公式サイトのホームページを紹介し、現在は春の公式の開発に注力事業の一つです。

私は2016年に使用したときに解放春ブーツ1.0 2014年4月版は、非常に頻繁に更新するので、春ブーツ自体は1.3.Xで、今春ブーツ春ブーツ2.0、春ブーツ2.0の統合を発表した、非常に急速に発展しています、そして春ブーツ1.0のAPIのための最新の技術と優れた新機能の多くは、大幅に最適化されています。春ブーツは一度すばやく、この結論は、次の図からわかるように人気のある技術となって立ち上げました。

)

写真は、2018年春ブーツBaiduのインデックスに2014を示し春ブーツ2.0の打ち上げで見ることができる検索ピークを引き起こしました。

春ブーツとマイクロサービスアーキテクチャ

春の継続的な発展に伴い、より多くのフィールドではより複雑、開発を統合するプロジェクトは、文書の多種多様な必要があり、ゆっくりとあまり使いやすいとなり、オリジナルのアイデアに反し、さらには、構成地獄と呼ばれます。春ブーツそれは、このような背景の開発フレームワークに抽象化されたが、誰もが、簡単に一般的に使用されるミドルウェア、オープンソースソフトウェアのさまざまなを統合するために、スプリングを使用しやすくするために目指す。一方、春ブーツが誕生し、マイクロサービスのコンセプトであるが、ゆっくりと醸造され、春ブーツR&Dは、マイクロJavaサービスアーキテクチャ着陸の分野での技術サポートを実現するためにマイクロサービスアーキテクチャの概念を兼ね備えています。

春ブーツは、新たな枠組みとして、大家族から、春ので、春には、それが持っているすべての機能を持ち、かつ使いやすく、春のブートをするには、設定の核となるアイデアよりも大きい、デフォルト設定では、私たちは多くのことを行うのを支援することに同意した春の大部分ブートSpringアプリケーションは非常に少ないの設定が必要です。春ブーツは、オープンソースソフトウェアの大半をサポートするために、アプリケーション統合パッケージの数を開発し、他の主流のオープンソースソフトウェアを統合するために、低コストで私たちをみましょう。

春ブーツの特性

  • 数秒でプロジェクトをビルドするために春のプロジェクトを使用してページガイド
  • このようREST API、WebSocketを、ウェブ、ストリーミング、タスクなどのサービスの様々な形の便利な外部出力、
  • 非常に簡単なセキュリティポリシーの統合
  • リレーショナルデータベースと非リレーショナルデータベースのサポート
  • このようにTomcat、Jettyのように埋め込まれたランタイムコンテナを、サポート
  • 強力な開発キット、ホットスタートのためのサポート
  • 自動管理が依存しています
  • アプリケーション監視を付属しています
  • このようなのIntelliJ IDEA、NetBeansのように、IEDの様々なサポートしています

これらの機能の春ブーツは、スタンドアローンのマイクロサービスを構築することは非常に簡単かつ迅速です。だから私たちは春ブーツ開発プロジェクトを使用して、我々は利便性の非常に大きい程度の伝統的な発展をもたらすでしょう、それはあなたが春ブーツは、プロジェクトに取り組んで使用した場合、以前の開発プロジェクトの道を行くことはもはや喜んだろうと言うことができます。

要約すると、春ブーツの使用は、私たちに、少なくとも以下の分野の改善をもたらすことができます

  • コーディング春ブーツ春ブーツは急速に開発効率を高めるために、様々なソリューションを統合するソリューションの富を提供し、簡単になります。
  • 春ブーツ春ブーツは、多くの場合のみ、簡単な構成が可能必要と前菜、主要なオープンソース製品との統合の富を提供し、コンフィギュレーションを簡単に。
  • 春ブーツは、シンプルの展開を変え、春ブーツ自体がコンテナを開始構築されているだけドッカー自動運転・保守は、実装が非常に簡単で、ジェンキンスと組み合わせたプロジェクトを、開始するコマンドを必要とします。
  • 春ブーツは、モニターが簡単にサービスの状態を監視しアクチュエータを使用して、簡単な、春ブーツ独自の監視コンポーネントになります。

概要は、春ブーツJavaはマイクロサービスアーキテクチャの床技術の最良の分野、ではないです。

3間の紛争

完全なマイクロサービスのアーキテクチャを理解し、春ブーツは、ビッグデータガバナンスの後、私たちは、このような面白いことを見つける:マイクロサービスアーキテクチャは、建築のアイデアですアーキテクチャの継続的な発展の必然的な結果であり、柔軟性、拡張性の高い、迅速なアプリケーションを構築する必要があり、スケーラビリティ、高可用性、およびその他の特性、技術の打ち上げのマイクロサービスアーキテクチャの考え方高い要件があり、春ブーツは、この文脈で出て生まれた、ドアの春ブーツの誕生名、最初から、比較的高い地位出発点、そして開発の数年後、十分な生態を改善し、春ブーツは当然のJavaテクノロジの最も人気のあるエリアとなっています。

マイクロサービスアーキテクチャの下では、データはN個の独立したマイクロサービスに分割して、どのように市場に対応するために、大量のデータのためのビジネスのお問い合わせは、分析が非常に緊急になり、簡単に技術的手段によって、この問題を解決することができる春ブーツとのMongoDBを使用しますNは、企業のビジネスニーズを満たすために、同期中に、MongoDBのクラスタにミクロデータ同期サービスへのデータのクレンジングを分割します。MongoDBのための春のブートサポートは、一般的に使用されるメソッドが使いやすい、ブーツは、分散コンピューティングの相関関数をカプセル化する一方の春に、私たちを可能にする前の春データ技術の多くの統計調査を達成するために、より簡潔な方法を生成する一方で、非常に友好的です。

春ブーツJavaはマイクロサービスアーキテクチャ技術の最良の床面積で、春ブーツ+ MongoDBのプログラムはマイクロサービスアーキテクチャの下で最適なデータ管理の一つです。

おすすめ

転載: juejin.im/post/5d394caee51d45109725ff64