SpringCloudプロジェクトの構築方法を教えます (3) Eurekaサービス登録センターの統合

マイクロサービスとは何ですか? シリーズが一目でわかる!

1. SpringCloudプロジェクトのビルド方法を教えます (1) 写真とテキストで詳しく説明、アホのような操作

2. SpringCloud プロジェクトの構築方法を教える (2) プロデューサーとコンシューマー

3. SpringCloudプロジェクトの構築方法を教えます (3) Eurekaサービス登録センターの統合

4. SpringCloudプロジェクトの構築方法を教えます (4) Eurekaクラスタのバージョン構築

5. SpringCloudプロジェクトのビルド方法を教えます (5) プロデューサークラスターバージョンをビルドします

6. SpringCloudプロジェクトの構築方法を教えます (6) Eurekaはサービスディスカバリを実現します

7. SpringCloudプロジェクトの構築方法を教える (7) Consulサービス登録センターを統合する

8. SpringCloudプロジェクトの構築方法を教えます (8) 統合リボンロードバランサ

9. SpringCloud プロジェクトの構築方法を説明します (9) OpenFeign サービス インターフェイス呼び出しの統合

10. SpringCloud プロジェクトの構築方法を教えます (10) Hystrix サービスのダウングレードの統合

11. SpringCloud プロジェクトの構築を教える (11) Hystrix のサービス ヒューズの統合

12. SpringCloud プロジェクトの構築方法を教える (12) Hystrix のグラフィカル ダッシュボードのリアルタイム モニタリングを統合する

13. SpringCloud プロジェクトの構築方法を教える (13) 新世代のゲートウェイを統合する

14. SpringCloudプロジェクトの構築方法を教えます (14) Integrated Config Distributed Configuration Center

15. SpringCloudプロジェクトの構築方法を教えます (15) Integrated Busメッセージバス

16. SpringCloud プロジェクトの構築方法を説明します (16) 統合された Stream メッセージ ドライバー

17. SpringCloud プロジェクトの構築方法を説明します (17) Sleuth 分散リンク追跡の統合

これからも更新していきますので、いいねやフォロー大歓迎です!
まずはエウレカを知ろう:公式紹介

1. エウレカを理解する

1. サービスガバナンスとは何ですか?

Springcloud は、サービス ガバナンスを実装するために Netflix によって開発された Eureka モジュールをカプセル化します。従来のRPCリモート呼び出しでは、各サービスとサービス間の依存関係の管理が複雑であり、管理が複雑であるため、サービス呼び出し、負荷分散、フォールトトレランス、およびサービス間の依存関係を実現できるサービスガバナンスが必要です。など サービスの検出と登録。

2. サービスの登録と検出とは何ですか?

エウレカはCSの設計アーキテクチャを採用しており、サービス登録センターであるサービス登録機能のサーバーはエウレカサーバーサーバーとなります。システム内の他のマイクロサービスについては、Eureka Client を使用して Eureka Server サーバーに接続し、ハートビート接続を維持します。これにより、システム保守者は ureka Server を使用して、システム内の各マイクロサービスが正常に実行されているかどうかを監視できます。

サービスの登録と検出には、レジストリがあります。サーバーが起動すると、サービスアドレス、通信などの現在のサーバーの情報がエイリアスの形式で登録センターに登録され、相手(消費者 | 生産者)はそれを登録センターから取得します。登録センターは実際のサービス通信アドレスのエイリアス形式で、ローカル RPC 呼び出しと RPC リモート呼び出しフレームワークの核となる設計アイデアを実現します。レジストリは各サービスとサービス間の依存関係を管理するため、ここではレジストリに焦点を当てます。どの RPC フレームワークにも、サービス アドレス関連の情報、つまりインターフェイス アドレスを保存する登録センターが存在します。

次の図は、Eureka のアーキテクチャ図を示しています。
ここに画像の説明を挿入

2. Eurekaサーバーサービスの構築

Eurekaのサービスである新規モジュールを作成します。手順は、新しいモジュール (モジュール名:cloud-eureka-server) を作成する前と同じです。前の 2 つの記事を参照してください。ここでは、pom ファイルを変更してコードを貼り付け始めます。注: 主なことは、eureka-server の依存関係を追加することです。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>com.study.springcloud</groupId>
        <artifactId>mcroservice</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
 
    <artifactId>cloud-eureka-server</artifactId>
    <dependencies>
        <!--eureka-server-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
        <dependency>
            <groupId>com.study.springcloud</groupId>
            <artifactId>cloud-api-commons</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!--boot web actuator-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--一般通用配置-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
 
</project>

ymlファイルを設定する

server:
  port: 7001
eureka:
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client:
    register-with-eureka: false     #false表示不向注册中心注册自己。
    fetch-registry: false     #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
    service-url:
      #设置与eureka  server交互的地址和注册服务都需要依赖这个地址
      defaultZone: http://eureka7001.com:7001/eureka/  #单机就是指向自己

メインの起動クラス: Eureka のサーバーであるため、アノテーション @EnableEurekaServer を追加する必要があります

package com.buba.springcloud.eureka;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
 
 
@SpringBootApplication
@EnableEurekaServer
public class EurekaMain {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(EurekaMain.class,args);
    }
}

プロジェクトを開始するには、アドレスhttp://localhost:7001/に直接アクセスします。ポート 7001 は、変更されたサービスのポートです。次のインターフェイスが表示され、起動が成功したことが示されます。
ここに画像の説明を挿入

Erueka のサーバーが正常に起動したので、注文の生産者と消費者を Erueka 登録センターに登録します。

3.えるえかサービスにプロデューサーを登録する

まず、cloud-provide-payment サービスの pom ファイルを変更します。eureka-client 依存関係を追加するだけで済みます。

<!--   添加eureka客户端的依赖     -->
 <dependency>
      <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>

次のステップでは、yml ファイルを変更し、yml ファイルに次の構成を追加します。

#eureka配置
eureka:
  client:
    #表示是否将自己注册进eureka  默认为true
    register-with-eureka: true
    #是否从EurekaServer中抓取已有的注册信息,默认为true,单点无所谓,集群必须设置true才能和ribbon使用负载均衡
    fetch-registry: true
    service-url:
      #单机配置
      defaultZone: http://localhost:7001/eureka

次に、メインのスタートアップ クラスを変更してこのアノテーションを追加します。@EnableEurekaClient

@SpringBootApplication
@EnableEurekaClient
public class PayMentMain {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(PayMentMain.class,args);
    }
}

最後に、最初に Eureka サーバー上でサービスを開始し、次にプロデューサーを開始する必要があります。次に、http://localhost:7001/にアクセスすると、次のインターフェイスが表示され、サービス リストに mcroservice-payment サービスが表示されます。
ここに画像の説明を挿入

次の図に示すように、サービス リストのサービス名 mcroservice-payment は、mcroservice-payment サービスの yml ファイルで構成されます。
ここに画像の説明を挿入

前のインターフェイスにアクセスして、アクセスが成功したかどうかを確認してみましょう。以下の図に示すように、http://localhost:8001/payment/get/1と入力すると、正常にアクセスできます。

ここに画像の説明を挿入

4.エルエカサービスにコンシューマ向けサービスを登録する

具体的な変更手順は上記のサービスと同様で、cloud-consumer-order マイクロサービス プロジェクトでは、eureka-client の依存関係のみを追加する必要があります。

<!--   添加eureka客户端的依赖     -->
 <dependency>
      <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
 </dependency>

次のステップでは、yml ファイルを変更し、yml ファイルに次の構成を追加します。

#eureka配置
eureka:
  client:
    #表示是否将自己注册进eureka  默认为true
    register-with-eureka: true
    #是否从EurekaServer中抓取已有的注册信息,默认为true,单点无所谓,集群必须设置true才能和ribbon使用负载均衡
    fetch-registry: true
    service-url:
      #单机配置
      defaultZone: http://localhost:7001/eureka

次に、メインのスタートアップ クラスを変更してこのアノテーションを追加します。@EnableEurekaClient

@SpringBootApplication
@EnableEurekaClient
public class OrderMain {
    
    
    public static void main(String[] args) {
    
    
        SpringApplication.run(OrderMain.class,args);
    }

最後に、最初に Eureka サーバー サービスを開始し、次にコンシューマー サービスを開始する必要があります。次に、http://localhost:7001/にアクセスすると、次のインターフェイスが表示されます。サービス mcroservice-payment に加えて、サービス mcroservice-order がサービス リストに追加されていることがわかります。

ここに画像の説明を挿入

これで、プロデューサー サービスとコンシューマ サービスの両方が Eureka 登録センターに正常に登録されました。コンシューマ サービスに正常にアクセスできるかどうかをテストしてみましょう。以下に示すように、 http://localhost/consumer/payment/get/1と入力すると、アクセスが成功します。

ここに画像の説明を挿入

生産者と消費者を登録センターに登録することに成功し、インターフェースを通じて情報を取得することもできます。とても簡単。

ここに画像の説明を挿入

次の記事では、引き続き Eureka のクラスター バージョンを構築し、引き続き注目して気に入っていただけますようお願いします。引き続き更新していきます。

おすすめ

転載: blog.csdn.net/weixin_39570655/article/details/131764668