Spring Cloud Basic Practical Combatの概要(1)サービスの登録と発見-Eureka

Springcloudは学ぶのに非常に費用がかかり、入学要件は非常に高いです。始めるにはある程度の知識が必要です。そうでない場合は、聖書を読んで学び、辛抱強く待つ必要があります。

Eureka
Eurekaは、Spring Cloud Netflixマイクロサービススイートの一部です。Eurekaは、サービスの登録および検出モジュールです。

Eurekaには、サーバー側とクライアント側のコンポーネントが含まれています。サーバー側は、サービスレジストリとも呼ばれ、サービスの登録と検出を提供するために使用されます。Eurekaは高可用性構成をサポートします。クラスター内のシャードに障害が発生すると、Eurekaは自動保護モードに切り替わります。これにより、シャード障害時にサービスの検出と登録が可能になります。障害が発生したシャードが通常に戻ると、クラスターの他のシャードはステータスを同期します。再び。

クライアントコンポーネントには、サービスコンシューマーとサービスプロデューサーが含まれます。アプリケーションの実行中、Eurekaクライアントはサービスをレジストリに登録し、定期的にハートビートを送信してサービスリースを更新します。同時に、サーバーから現在登録されているサービス情報を照会してローカルにキャッシュし、サービスステータスを定期的に更新できます。

サービスレジストリを構築する

最初にIdeaを開き、親プロジェクトとしてMavenプロジェクトを作成します。 
Eurekaのサーバーとして新しいモデルを作成します。

1つ:以下に示すように、親プロジェクトとしてMavenプロジェクトを作成します。

以下に示すように、[次へ]をクリックします。

次に、[次へ]をクリックします

図に示すように、もう一度[完了]をクリックして、Mavenプロジェクトを作成します。

次に、springcloud-demoプロジェクトでモジュールを作成します

[次へ]をクリックします。アーティファクトは大文字と小文字を混在させることはできず、小文字のみを混在させることができます。

[次へ]をクリックしてから[完了]をクリックすると、作成されたモジュールによって生成されたpom.xmlファイルは次のようになります。

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--springboot版本-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.eureka.demo</groupId>
    <artifactId>eureka-server-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-server-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <!--jdk1.8-->
        <java.version>1.8</java.version>
        <!--springcloud对应版本-->
        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

次に、クラスEurakeApplicationを開始する前に、@ EnableEurekaServerを追加します。

package com.eureka.demo.eurekaserverdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerDemoApplication.class, args);
    }

}

application.propertiesでポート番号を宣言します。ここではポート番号として9002を使用しました。eureka.client.register-with-eureka= falseおよびeureka.client.fetch-registry =を宣言して、Eurekaサーバーであることを宣言する必要があります。 false。クライアントではありません。

#端口号
server.port=9002 
# 实例地址:localhost 127.0.0.1
eureka.instance.hostname=localhost
# 表明是一个server
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

プロジェクトを再度実行し、http:// localhost:9002にアクセスする、以下のページが表示されます。 

図の赤い丸で示すように、登録されているサービスがない場合、利用可能なアプリケーションがない場合、サービスが見つかりません。

次に登録センターを設置します

サービスプロバイダーを構築する

ビルドの一般的な手順は前者と似ていますが、インポートするjarパッケージを選択するときは、EurekaDiscoveryを選択する必要があります。 

springcloudd-emoでモジュールを作成します

[次へ]をクリックしてインポートするjarパッケージを選択するときは、EurekaDiscoveryを選択する必要があります。以下に示すように:


完成したプロジェクトのpomファイル:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.eureka.provider</groupId>
    <artifactId>eureka-provider</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka-provider</name>
    <description>Demo project for Spring Boot</description>
    <packaging>jar</packaging>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
    </properties>

    <dependencies>
        <!--eureka-client版本-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--引入spring-web依赖,这样RestController等几个注解才能生效-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

application.propertiesでポート番号といくつかの構成を宣言します。

#端口号
server.port=9003
# 将提供者注册到eureka注册中心中
eureka.client.service-url.defaultZone=http://localhost:9002/eureka/
spring.application.name=welcome
# some.words这里暂时不支持中文汉字
some.words=Welcome to Spring Cloud there is not support chinese words now!

eureka-providerのモジュールを起動し、次のページに入力します:http:// localhost:9003 / welcome?name = zhangsan

ブラウザに次のインターフェイスが表示され、名前の後の値は自分で定義できます。 

http:// localhost:9002 /ポートのEurekaサーバーに戻りましょう。登録したばかりのサービスがあります。 

赤い文は、Eurekaが自己保護モードに入ったことを示します。保護モードは、主にクライアントのグループとEurekaサーバー間のネットワークパーティションでの保護に使用されます。保護モードになると、Eurekaサーバーはサービスレジストリ内の情報を保護しようとし、サービスレジストリ内のデータを削除しなくなります(つまり、マイクロサービスからログアウトしません)。

これまでのところ:登録センターが書かれ、コードのダウンロードアドレス:

それから学び続けてください...さあ...

おすすめ

転載: blog.csdn.net/qq_30764991/article/details/100537932