Java Spring Boot を使用したスケーラブルなマイクロサービスの構築: ベスト プラクティスとテクニック パート -1

PHPz
リリース: 2024-08-17 18:51:32
オリジナル
640 人が閲覧しました

モノリスアーキテクチャ

  • すべての機能を単一のプロジェクトで開発する場合、それはモノリスアーキテクチャベースのアプリケーションと呼ばれます。

  • アプリケーションをjar/warとしてパッケージ化してサーバーにデプロイします。

  • モノリスアプリケーションにはすべての機能が含まれているため、fat jar/warになります。

利点
1) 開発と管理が簡単
2) すべてが 1 か所で入手可能です。
3) 設定は一度だけ必要です。

短所
1) メンテナンスが難しい
2) 単一障害点
3) 変更を行った場合、プロジェクト全体が再デプロイされ、テストされます。
4) 開発者はモジュール全体の知識がない可能性があるため、問題の修正を開始するのは困難です。
5) 一部のモジュールの負荷が高くなった場合は、アプリケーション全体の複数のインスタンスを作成する必要があり、各モジュールが互いに緊密に結合されているため、多くのスペースが必要になります。

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

モノリシックの問題を克服するために、マイクロサービスアーキテクチャが市場に登場しました

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

  • マイクロサービスは、プログラミング言語、フレームワーク、または API ではありません。マイクロサービスはアーキテクチャ設計パターンです。

  • 疎結合でアプリケーション機能を開発することを提案するマイクロサービス

  • マイクロサービス アーキテクチャでは、単一のプロジェクトですべての機能を開発するわけではありません。プロジェクトの機能をいくつかの REST API に分割します。

  • マイクロサービスは Java だけに関係するものではありません。プログラミング言語固有のプロジェクトはマイクロサービス アーキテクチャを使用できます。

マイクロサービスは、小規模なサービスを開発するアプローチです。各サービスは独自のコンテナ/プロセス/サーバー上で実行され、サービスは軽量で独立してデプロイ可能である必要があります。これにより、より迅速な開発、展開、拡張性が可能になります。

ご覧のとおり、モノリス アプリケーションの従業員モジュール、顧客モジュール、住所モジュール、およびコース モジュールが小規模なサービスに変換されたため、ここでは従業員サービス、顧客サービス、住所サービス、コース サービスのようなものになります。モノリス アプリケーションでは単一のデータベースが使用されますが、マイクロサービス アプリケーションでは各サービスが独自のデータベースを持ちます。そしてそれらは今では相互に依存しています。各サービスは相互に通信し、残りの呼び出しをスローします。

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

利点

  • テクノロジーの独立性 (Python、Go などの複数のテクノロジーを使用してバックエンド API を開発できます)
  • データベースの独立性。

  • 各サービスは互いに独立しているため (疎結合)、各サービスを個別にデプロイできます。

  • いずれかのサービスで変更を実行する場合、すべてのサービスをデプロイする必要はなく、1 つのサービスのみを 1 つだけデプロイします。
  • 1 つのサービスに取り組む開発者は、アプリケーション全体の知識を必要としません。
  • 単一のマイクロサービスの障害はアプリケーション全体に影響を与えず、全体的な復元力が向上します。
  • コードベースが小さくなり、懸念事項が分離されることで、メンテナンスとデバッグがより管理しやすくなります。
  • その小規模で独立した性質により、個々のマイクロサービスは、アプリケーション全体をスケーリングすることなく、需要に基づいて個別にスケーリングできます。
  • 各サービスは異なる方法でテストできます。
デメリット

1 つのサービス構成で変更を実行したい場合、各サービス構成で変更を実行する必要はありません。たとえば、すべてのプロジェクトのすべての application.properties ファイルに存在する共通のプロパティがあります。
  • リーリー
  • したがって、会社名を変更したい場合は、すべてのサービスで名前を変更する必要があります。

    マイクロサービス ベースのアプリケーションのテストは、サービス間の相互依存性と相互作用により、より複雑になる可能性があります。
  • サービスがダウンするよりも多くのリクエストを送信した場合、各サービスはその後特定の量のリクエストを処理するため、そのサービスの複数のインスタンスが必要になり、リクエストをサービスの別のインスタンスにルーティングするにはロードバランサーが必要になります。クライアントからのリクエストと別のインスタンスのルートのバランスをとりました。しかし、ロードバランサーを Java で書くのは難しいです。

Mengapa Java untuk Microservices

Java menyediakan rangka kerja yang dipanggil Spring-Boot untuk membangunkan Rest API dan Spring-Boot menyediakan banyak ciri seperti autokonfigurasi, pelayan terbenam, jika kami sedang membangunkan perkhidmatan jadi terdapat keperluan untuk menggunakan perkhidmatan sech pada pelayan dan spring -Boot menyediakan pelayan tomcat, jadi setiap perkhidmatan berjalan pada port tomcat yang berbeza. contohnya perkhidmatan pekerja berjalan pada port 8080, perkhidmatan kursus berjalan pada port 8081 dan setiap perkhidmatan mempunyai pelayan sendiri.

Building Scalable Microservices with Java Spring Boot: Best Practices and Techniques part -1

dengan bantuan spring-Boot menyediakan ciri untuk pembangunan pantas, Kurang konfigurasi, aplikasi Sedia Pengeluaran dan projek stater

dan terdapat projek di bawah Rangka Kerja Spring Dipanggil Spring Cloud yang menyediakan perkhidmatan mikro sokongan Sedia dibuat, Spring Cloud menyediakan beberapa alat dan teknik biasa untuk membangunkan corak perkhidmatan mikro biasa dengan cepat.

Spring Cloud menumpukan pada menyediakan pengalaman luar kotak yang baik untuk kes penggunaan biasa dan mekanisme kebolehlanjutan untuk melindungi orang lain

  • Konfigurasi teragih/versi
  • Pendaftaran perkhidmatan dan penemuan
  • Penghalaan
  • Panggilan perkhidmatan ke perkhidmatan
  • Pengimbangan beban
  • Pemutus Litar
  • Pesej edaran
  • Perkhidmatan mikro jangka pendek (tugas)
  • Ujian kontrak didorong oleh pengguna dan didorong oleh pengeluar.

Seni Bina Microservices

Kami tidak mempunyai sebarang seni bina tetap untuk Microservices, Dev menyesuaikan seni bina perkhidmatan mikro mengikut keperluan Projek mereka, Kebanyakan projek akan menggunakan komponen di bawah dalam Microservices Architecture.

1) Pendaftaran Perkhidmatan (Pelayan Eureka)

2) Perkhidmatan (REST API)

3) Komunikasi Antara Perkhidmatan (FeginClient)

4) Gerbang API

5) Pelayan Pentadbir

6) Zipkin

Kesimpulan

Perkhidmatan mikro di Java telah mengubah cara kami mendekati pembangunan perisian, membawa tahap fleksibiliti, skalabiliti dan daya tahan baharu. Ekosistem Java yang kaya, digabungkan dengan rangka kerja seperti Spring Boot, Micronaut, menjadikannya pilihan yang sangat baik untuk membina perkhidmatan mikro yang dapat memenuhi permintaan aplikasi moden.

Memandangkan kami telah meneroka seni bina ini, jelas sebab perkhidmatan mikro telah mendapat populariti berbanding aplikasi monolitik tradisional. Mereka menawarkan modulariti dan kebebasan, membolehkan pasukan membangun, menggunakan dan menskalakan perkhidmatan secara individu. Ini amat berharga dalam dunia yang ciri asli awan semakin menjadi standard. Walau bagaimanapun, perjalanan itu juga mendedahkan cabaran seperti memastikan ketekalan data, mengurus komunikasi antara perkhidmatan dan mengekalkan keselamatan yang teguh merentas perkhidmatan.

Kekal dikemas kini dengan kemajuan terkini dalam alatan dan amalan adalah penting untuk pembangun Java yang bekerja dengan perkhidmatan mikro. Landskap sentiasa berkembang, dan mereka yang menyesuaikan diri akan berada pada kedudukan terbaik untuk memanfaatkan potensi penuh seni bina ini. Masa depan perkhidmatan mikro di Java kelihatan menjanjikan, dengan penambahbaikan berterusan dalam rangka kerja dan alatan, disokong oleh komuniti pembangun yang semakin berkembang yang tidak sabar-sabar untuk berkongsi pengetahuan dan pengalaman mereka.

Merangkul perkhidmatan mikro dalam Java bermakna membuka pintu untuk mencipta aplikasi yang lebih berdaya tahan, berskala dan boleh diselenggara. Dengan mengikuti amalan terbaik dan kekal komited kepada pembelajaran berterusan, pembangun boleh membuka kunci kemungkinan baharu dalam pembangunan perisian, yang membawa kepada penyelesaian yang lebih inovatif dan cekap.

以上がJava Spring Boot を使用したスケーラブルなマイクロサービスの構築: ベスト プラクティスとテクニック パート -1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!