15年間で、ダニエルは140を超える実際のケースを使用して、Javaマイクロサービスアーキテクチャの実際の戦闘を説明しました:SpringBoot + SpringCloud + Docker + RabbitMQ

序文

この記事は、Danielが15年間に開発した140の実際的な事例に基づいており、Javaマイクロサービスアーキテクチャの実際の戦闘を完全に示しています。SpringBoot+ SpringCloud + Docker + RabbitMQ;

豊富なアーキテクチャアイコンと段階的な学習を使用して、誰もがマイクロアーキテクチャの設計と開発を簡単に習得できるようにします。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

Javaマイクロサービスアーキテクチャは、現時点で最も人気のあるソフトウェアアーキテクチャ設計ソリューションであり、コードをすばやく記述および開発でき、保守も非常に便利です。マイクロアーキテクチャテクノロジを使用すると、高可用性、分散型、高性能のプロジェクト構造開発を簡単に実現できると同時に、より安全になります。

この記事は、Java開発に携わっており、アーキテクチャとプロジェクトのリファクタリングの要件がある読者、および関連するテクノロジー愛好家に適しています。この記事がすべての人の学習に役立つことを願っています。

目次

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

メインコンテンツ

全文に含まれるテクノロジーには、SpringBoot、Thymeleaf、Jetty、Redis統合、C3PO統合、Druid統合、MyBatis統合、ActiveMQ統合、RabbitMQ統合、Kafka統合、Shiro統合、SpringDataJPA統合、メール統合、アクチュエーター監視、Restful、 RestTemplate、Eureka、Ribbon、Feign、Hystrix、Turbine、Zuul、SpringCloudConfig、SpringCloudBus、SpringCloudStream、SpringCloudSleuth、Zipkin、OAuth、RabbitMQ、Docker。

最初の部分、springbootの記事。

第1章SpringBootプログラミングの開始。

1. SpringBootが提唱しているのは簡潔な開発モデルであり、ユーザーが多数の構成ファイルや依存関係に悩まされないようにすることができます。

2. SpringBoot開発には、MavenまたはGradleビルドツールのサポートが必要です。

3. SpringBootは、一連のアノテーションを使用して開発プロセスを簡素化します。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第2章SpringBootプログラム開発。

1.プロジェクトの親pomとして導入されることに加えて、SpringBootの依存関係管理は依存関係管理の形式で構成することもできます。

2. SpringBootプログラムのテストでは、特にspring-boot-starter-test依存関係ライブラリが提供され、テスト時には@SpringBootTestアノテーションが必要です。

3. SpringBootプログラムのメインクラスを定義するときに@SpringBootApplicationアノテーションを使用して、サブパッケージ内の構成アイテムを自動的にスキャンし、自動構成を実現します。

4. @Controllerアノテーションは通常のコントローラーの形式で定義されますが、@ RestControllerアノテーションはRestfulモードで直接実行できます。

5. SpringBootはデフォルトでTomcatコンテナーを使用します。また、Spring-boot-starter-jetty依存関係ライブラリーは、開発中にJettyコンテナーを使用するように構成することもできます。ただし、実際のデプロイメントでは、Tomcatコンテナーを使用することをお勧めします。

6. SpringBootは、*。propertiesと* .ymlの2種類の構成ファイルをサポートします。実際の開発では、application.ymlを介して環境構成を実装することをお勧めします。

7. SpringBootプロジェクトはspring-boot-maven-pluginを介してパッケージ化できるため、プロジェクトは* .jarファイルを介して簡単にリリースできます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第3章Thymeleafテンプレートのレンダリング。

1. SpringBootにThymeleafテンプレートを導入する場合は、spring-boot-starter-thymeleaf依存関係パッケージを構成する必要があります。

2. Thymeleafは、JSPページを効果的に置き換え、ページの動的ロジック処理を実現できます。

3. Thymeleafは、動的ページ(テンプレート)と静的リソース(静的)の2種類のリソースに分けられます。

4. Thymeleafは、コントローラーから渡された属性出力だけでなく、リソースファイルのコンテンツ出力も実現できます。

5. Thymeleafでは、「@ {PATH}」の形式を使用して、リソースの導入とジャンプ構成を実装できます。

6. Thymeleafでは、判断とループロジックを使用して処理できます。また、さまざまな組み込み操作を使用して、ページでリスト、マップ、セット、文字列、その他のデータ処理を実行できます。また、日付の書式設定手順を使用して、日付表示フォーマット処理。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第4章SpringBootとWebアプリケーション。

1. SpringBootプロジェクトは、プログラムをwarファイルとしてパッケージ化し、実行のためにTomcatコンテナーにデプロイできます。

2. SpringBootは、web.xmlファイルのようなステータスコードのエラージャンプページを設定できます。また、異常エラージャンプページを設定することもできます。

3. SpringBootとSpringMVCは同じ処理フォームでファイルをアップロードしますが、構成はより単純化されています。

4. SpringBootは、HandlerInterceptorインターセプターを使用して、制御レイヤーの要求をインターセプトできます。

5. SpringBootは、spring-boot-starter-aopを直接インポートしてAOPインターセプターを記述し、ビジネスレイヤーのインターセプトを実現できます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第5章SpringBootサービスの統合。

1. SpringBootは、一般的なORM設計フレームワーク(MyBatis、JPA)と簡単に統合でき、DataSourceの自動導入も実現できます。

2. SpringBootがメッセージコンポーネントを統合する場合、それを使用するには、application.yml構成ファイルで構成するだけで済みます。

3. SpringBootがRedisデータベースを統合する場合、RedisTemplateテンプレートを使用してデータベース操作を実行するか、シリアル化操作を介してオブジェクトをデータベースに保存できます。

4. SpringBootは、デフォルトでは単一のRedisデータベース接続の構成のみをサポートします。複数のRedisデータベース接続を構成する必要がある場合は、開発者が構成プログラムクラスを定義して完了する必要があります。

5. SpringBootはWebアプリケーションであり、Shiroを使用して認証と承認の処理を実行できます。また、OAuthと組み合わせてシングルサインオン制御を実行することもできます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

SpringCloudの2番目の部分。

第6章SpringCloudの概要。

1. RPCは、さまざまな言語で実装できるリモートプロシージャコールを実装するための技術標準です。SpringCloudは、Restfulアーキテクチャに基づくRPCテクノロジーです。

2. SpringCloudがマイクロサービスの定義を実装する場合、アーキテクチャの統合を実現するために、主にNetflix製品(Eureka、Zuul、Feign、Ribbonなど)を使用します。

3. SpringCloudは、安全なアクセスのためにSpringSecurityテクノロジーと組み合わせることができます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第7章SpringCloudとRestful;

1. SpringCloudは、Restfulによって実装されたRPCテクノロジーに基づいており、SpringBootテクニカルサポートが必要です。

2.マイクロサービスの作成中のサービスアクセスのセキュリティを確保するために、要求と戻りデータをカプセル化するようにDTOデータ送信クラスを構成する必要があります。

3. RestTemplateは、コンシューマーがRestfulサーバーにアクセスするためのプログラムクラスであり、アドレスを介してアクセスできます。

4.マイクロサービス情報は、Swaggerフレームワークを介したインターフェース記述によって定義できます。

5.マイクロサービスのセキュリティを確保するために、Spring Securityをプロジェクトに導入して、ユーザーの認証および承認情報を構成する必要があります。

6.マイクロサービスが高い同時アクセスに耐える場合は、ステートレスセッション構成を使用する必要があります。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第8章ユーレカ登録サービス;

1. Eurekaは、マイクロサービスの登録サービスを提供します。すべてのマイクロサービスは、Eurekaで登録および公開する必要があります。

2. Eurekaはディスカバリー管理を提供し、ディスカバリー情報はDiscoveryClientクラスを使用して実現できます。

3. Eurekaはデフォルトのサービス登録を提供し、開発者は実際の状況に応じてハートビート時間、クリア時間などを構成することもできます。

4. Eurekaは、Spring Securityを使用して、レジストリのセキュリティを確保するためのセキュリティメカニズムを実装しています。

5. Eurekaは、単一ノードによって引き起こされるサービスの麻痺を回避するためにHAメカニズムをサポートしています。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第9章SpringCloudサービスコンポーネント。

1.リボンは、コンシューマー側で機能する負荷分散コンポーネントです。SpringBootコンシューマー側は、リボンを介してEurekaに登録されているマイクロサービスを呼び出すことができます。

2. SpringCloudマイクロサービスの負荷分散はサービス名管理を使用します。つまり、同じサービス名のマイクロサービスは同じマイクロサービス情報のセットに自動的に登録され、IRuleインターフェイスサブクラスをリボンで使用して負荷分散戦略を構成できます。

3. Feignは、リボンコンポーネントに基づくアプリケーションです。Feignを使用して、リモートのRestfulとインターフェイス間のマッピングと変換を実現できます。

4. Hystrixは、特定のマイクロサービスに問題が発生したときに自動的に融合してアバランシェ効果を防ぐことができるヒューズメカニズムを提供します。

5. HystrixDashboardはマイクロサービスアクセスの監視を提供し、Turbineを使用してマイクロサービスのグループを監視できます。ただし、認証されたマイクロサービスの場合、セキュリティアクセスの除外が必要です。

6. Zuulはゲートウェイルーティング機能を提供し、Zuulを使用してマイクロサービスのグループを分割できます。同時に、ルーティング構成を使用すると、マイクロサービスへのアクセスをより安全にすることができます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第10章SpringCloudConfig;

1. SpringCloudConfigは、構成ファイルの統合管理を提供するマイクロサービスです。ソフトウェアバージョン管理ウェアハウス(Git、SVN)を使用して構成を保存できます。

2. SpringCloudConfigサーバーは、1つのウェアハウスで複数の構成ファイルのキャプチャを実現することも、アプリケーションウェアハウスを介して複数のウェアハウス構成ファイルのキャプチャを実現することを自動的に選択することもできます。

3. SpringCloudConfigクライアントは、bootstrap.ymlを介してSpringCloudConfigサーバーアドレスを構成する必要があります。これにより、クライアントの起動時に構成ファイルを自動的にロードできます。

4.キーとKeyStoreを使用して、SpringCloudConfigの重要な情報を暗号化します。

5.マイクロサービスとして、SpringCloudConfigサーバーをEurekaに登録して、構成マイクロサービスの高可用性を実現できます。

6. Spring CloudBusを使用して構成ファイルの動的フェッチを実現し、GitHubのWebhookと組み合わせて自動構成更新を実現できます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第11章SpringCloudStream;

1. SpringCloudStreamは、メッセージ駆動型マイクロサービスの確立を実現できます。

2. Spring CloudStreamの最大の特徴は、ユーザーがプログラム処理にオブジェクトを使用し、メッセージ送信時にオブジェクトを自動的にJSON構造に変換できると同時に、JSONデータとオブジェクト間の変換をコンシューマーで実現できることです。側。

3. Spring CloudStreamは、RabbitMQとKafkaの2種類のメッセージコンポーネントをサポートしています。RabbitMQ統合を使用することをお勧めします。

4. Spring CloudStreamのデフォルトチャネルはソースインターフェイスとシンクインターフェイスを使用します。開発者が必要な場合は、チャネル構成をカスタマイズすることもできます。

5. SpringCloudStreamをRabbitMQと組み合わせると、コンシューマーのグループ化構成を使用して、メッセージの永続ストレージを実現できます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第12章SpringCloudSleuth;

1. SpringCloudSleuthはデータ収集マイクロサービスであり、Zipkinと組み合わせて、マイクロサービスの呼び出し構造の監視を実現できます。

2. SpringCloudSleuthをRabbitMQおよびMySQLと組み合わせて、データ収集を実現できます。ELKと組み合わせて、データ収集後の分析を行うこともできます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第13章OAuth認証管理。

1. Web側でシングルサインオン統合を実現することに加えて、OAuthをSpringCloudと組み合わせて使用​​することもできます。

2. OAuthがSpringCloudと統合されている場合、ClientDetailsS​​erviceとUserDetailsS​​erviceを使用してデータベース情報にアクセスできます。

3. OAuthアクセスによって取得されたトークン情報はRedisに保存する必要があり、トークン認証情報を取得するためのリクエストは、トークンを介してユーザーの完全なリソースを取得できます。

4. SpringCloudがOAuthと統合する場合、application.ymlで構成されたsecurity.oauth2.resource.filter-orderオプションを変更する必要があります。そうしないと、ユーザートークンが検出されません。

5. SpringCloudがOAuthを統合する場合、Zuulゲートウェイでトークンを生成する必要があり、特定のマイクロサービスにアクセスする場合、トークンを介してユーザーリソースのみを取得する必要があります。同時に、ユーザーの役割を統合管理できます。 。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

マイクロサービス補助記事の第3部

第14章RabbitMQメッセージコンポーネント。

1. RabbitMQはAMQPに基づくメッセージコンポーネントであり、その処理パフォーマンスはJMSコンポーネントよりも高くなっています。

2. RabbitMQはErlang言語環境のサポートを必要とし、完全な管理コントロールセンターを提供します。

3. RabbitMQは一時メッセージまたは永続メッセージを作成でき、メッセージタイプはユーザーが作成したキュータイプによって決定されます。

4. RabbitMQは、仮想ホストをサポートして、さまざまなユーザーとさまざまなキューを分離します。

5. RabbitMQには、トピック(トピックサブスクリプション)、直接(直接接続)、ファンアウト(ブロードキャスト)の3種類の交換スペースがあります。

6. RabbitMQクラスターは、複数のホストにメッセージを保存する前にミラーキューを構成する必要がありますが、HAメカニズムはSpringフレームワークによって補完できます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

第15章Docker仮想化コンテナー;

1. Dockerは、クラウドサービスに基づくアプリケーションであり、ホスト上に複数のサービスのデプロイを実装できます。

2. Dockerイメージは複数のDockerコンテナーを作成でき、各Dockerコンテナーは独立して存在します。

3. Dockerイメージは、ファイルを介して保存またはロードしたり、統合管理のためにDockerHubに送信したりできます。

4.マイクロサービスはMavenプラグインを使用してDockerイメージを作成すると同時に、DockerイメージをDockerHubに直接送信できます。

5.マイクロサービスの起動シーケンスを制限する必要がある場合は、DockerComposeを使用してサービスの起動シーケンスを調整し、プロジェクトのデプロイプロセスを簡素化できます。

ダニエルは15年間で、140を超える実際の事例を使用して、Javaマイクロサービスアーキテクチャのドキュメントを詳細に説明しました。

 

この304ページの[Javaマイクロサービスアーキテクチャの実際の戦闘:SpringBoot + SpringCloud + Docker + RabbitMQ]技術文書が必要な友人は、この記事を転送してエディターをフォローし、以下のコードをスキャンして入手できます。

おすすめ

転載: blog.csdn.net/bjmashibing001/article/details/110953600