マイクロサービス - マイクロサービスのアーキテクチャとコンポーネント (1)

 1. マイクロサービス アーキテクチャの一般的な問題と対応するコンポーネント


マイクロサービス システム アーキテクチャが採用されると、多くの小規模なサービスをどのように管理するかという、いくつかの問題に遭遇することになります。(サービスガバナンスレジストリ[サービス登録検出の排除]) nacos


小規模なサービスが多数ある中で、それらはどのように相互に通信するのでしょうか? (安静な RPC ダボのふり)    

httpclient("url", パラメータ)、springBootrestTemplate("url", パラメータ)、   feign


小規模なサービスが多数ある中で、クライアントはどのようにしてそれらのサービスにアクセスするのでしょうか? (ゲートウェイ) ゲートウェイ


小規模なサービスが数多くある中で、一度問題が発生した場合、どのように対処すればよいのでしょうか。(フォールトトレランス)センチネル


小規模なサービスが多数あるため、問題が発生した場合、どのようにトラブルシューティングを行うべきでしょうか?  (リンク トラッキング)

上記の問題については、マイクロサービス設計者がスカイウォーキングを回避することはできないため、ほとんどのマイクロサービス製品はそれぞれの問題を対象としており、それらを解決するための対応するコンポーネントが提供されています。

 リクエストが受信されると、ゲートウェイを介して登録センターにアクセスしてサービス リストを取得し、ローカル ロード バランサー リボンを介して対応するサービスにルーティングします。また、センチネルを組み合わせて一連の障害を実行することもできます。現在の制限やダウングレードなどの寛容な手段とサービス間の呼び出しには、Feigin を使用してエレガントな呼び出しを行うため、分散アーキテクチャでは一貫したトランザクションが発生します 性的な問題については、SEATA を使用して解決します。

2. SpringCloud Alibaba マイクロサービス ソリューション

1。概要

    Spring Cloud Alibaba は Spring Cloud のサブプロジェクトであり、マイクロサービス開発のためのワンストップ ソリューションの提供に特化しています。このプロジェクトには分散アプリケーション マイクロサービスを開発するために必要なコンポーネントが含まれているため、開発者はこれらのコンポーネントを簡単に使用して、Spring Cloud プログラミング モデルを通じて分散アプリケーション サービスを開発できます。Spring Cloud Alibaba を利用すると、いくつかのアノテーションと少量の構成を追加するだけで、Spring Cloud アプリケーションを Alibaba マイクロサービス ソリューションに接続し、Alibaba ミドルウェアを通じて分散アプリケーション システムを迅速に構築できます。

2. コア成分分析

Spring Cloud Alibaba は、デフォルトで次のコア機能を提供します (最初に理解してください)。

サービスのレート制限とダウングレード:
        デフォルトでは、WebServlet、OpenFeign、RestTemplate、Spring Cloud Gateway、RocketMQ のレート制限とダウングレード機能へのアクセスがサポートされています。レート制限とダウングレードのルールは、コンソールを通じてリアルタイムで変更できます。実行時に、レート制限の表示とメトリクス監視のダウングレードもサポートします。
サービスの登録と検出:
        Spring Cloud サービスの登録と検出の標準に基づいて、Nacos の助けを借りて実現され、Ribbon のサポートもデフォルトで統合されています。
分散構成管理:
        Nacos に基づいて、分散システムの外部構成をサポートし、構成が変更されると自動的に更新されます。
メッセージ駆動型機能:
        Spring Cloud Stream に基づいて、マイクロサービス アプリケーションのメッセージ駆動型機能を構築します。
分散トランザクション:
        @GlobalTransactional アノテーションを使用して、分散トランザクションの問題を効率的に、ビジネスへの侵入をゼロに解決します。
分散タスク スケジューリング:
        第 2 レベルの、正確で信頼性が高く、可用性の高いタイミング (Cron 式に基づく) タスク スケジューリング サービスを提供します。同時に、グリッド タスクなどの分散タスク実行モデルも提供します。グリッド タスクは、実行のために Sea Quantum タスクをすべてのワーカーに均等に分散することをサポートします。

3. ソリューションアーキテクチャの設計

    Spring Cloud Alibaba によって実装されたマイクロサービスに基づくソリューション設計アーキテクチャを次の図に示します。

4. SpringCloud アグリゲーション プロジェクトを構築し、環境を初期化する

4.1 エンジニアリング構造

cgb2106-4 (工作区/空项目)
├── 01-sca   //(微服务父工程)
     ├── sca-provider         //服务提供方
     ├── sca-consumer         //服务消费方
     ├── sca-gateway          //网关服务,这个工程后续会作为服务的访问入口

4.2 対応する依存関係を追加する

参考网址:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

    pom ファイルに、次の依存関係を追加します。

<!--    maven的父工程为一个pom工程,此工程主要负责依赖版本及部分基础依赖的管理-->
    <dependencyManagement>
        <dependencies>
            <!--Spring Boot 依赖(定义了微服务规范)-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <!--Spring Cloud 依赖(定义了微服务规范)-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR9</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <!--Spring Cloud Alibaba依赖(基于spring微服务规范做了具体落地实现)-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.6.RELEASE</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

5. まとめ

    つまり、マイクロサービスは、このアーキテクチャ内の各サービス (サービス) が一連の機能向けに設計され、特定の問題の解決に焦点を当てたアーキテクチャ設計アプローチです。開発者がサービスに徐々にコードを追加し、サービスが複雑になった場合、サービスは複数の小さなサービスに分割されることがあります。次に、独自の開発、テスト、展開、運用、保守を実行します。その結果、クライアントのリクエストをより適切かつ柔軟に処理できるようになり、システムの信頼性と拡張性が向上します。

おすすめ

転載: blog.csdn.net/m0_63270506/article/details/124459811