(ターン)歴史上最も単純なSpringCloudチュートリアル|パート1:サービスの登録と発見Eureka(Finchleyバージョン)

1.春の雲の紹介


「史上最もシンプルなSpringCloudチュートリアル」が読者に非常に人気があることを考慮して、もう一度特別にバージョンをアップグレードしました。現在サポートされているバージョンはSpring Bootバージョン2.0.3.RELEASEで、SpringCloudバージョンはFinchleyです。リリース。

フィンチリー版の公式文書は次のとおりです。

https://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html

Springクラウドは、構成管理、サービスディスカバリ、サーキットブレーカー、ルーティング、マイクロエージェント、イベントバス、グローバルロック、意思決定キャンペーン、分散セッションなど、分散システムを迅速に構築するためのツールを開発者に提供します。シンプルな環境で実行され、開発者のコ​​ンピューターで実行できます。さらに、Spring CloudはSpringbootに基づいているため、開発中にSpringbootについてある程度理解しておく必要があります。わからない場合は、次の記事を読むことができます:2時間でSpringbootを学ぶまた、「マイクロサービスアーキテクチャ」がわからない場合は、検索エンジンで「マイクロサービスアーキテクチャ」を検索できます。

2.サービスレジストリを作成します


ここでも、サービスの登録と発見のコンポーネントとしてユーレカを使用しています。領事については、後で詳細に記事を紹介します。

2.1最初にMavenメインプロジェクトを作成します。

最初にメインのMavenプロジェクトを作成し、そのpomファイルに依存関係を導入します。SpringBootバージョンは2.0.3.RELEASEで、SpringCloudバージョンはFinchley.RELEASEです。このpomファイルは、依存バージョン管理の役割を果たす親pomファイルとして使用され、他のモジュールプロジェクトはpomを継承します。この一連の記事はすべてこのモードを採用しており、他の記事のpomはこの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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.forezp</groupId>
    <artifactId>sc-f-chapter1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>sc-f-chapter1</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
        <relativePath/>
    </parent>

    <modules>
        <module>eureka-server</module>
        <module>service-hi</module>
    </modules>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>

    <dependencies>
        <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>


2.2次に、2つのモデルプロジェクトを作成します

1つのモデルプロジェクトはサービスレジストリ、つまりEurekaサーバーとして機能し、もう1つはEurekaクライアントとして機能します。

以下では、サーバーの作成を例として取り上げ、作成プロセスを詳細に説明します。

以下に示すように、プロジェクトを右クリック->モデルを作成->スプリングイニシャルを選択します。

å¨è¿éæå¥å¾çæè¿°

次のステップ->クラウド検出-> eurekaサーバーを選択し、次のステップに進みます。

å¨è¿éæå¥å¾çæè¿°

プロジェクトが作成された後、そのpom.xmlは親pomファイルを継承し、spring-cloud-starter-netflix-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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.forezp</groupId>
    <artifactId>eureka-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-server</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.forezp</groupId>
        <artifactId>sc-f-chapter1</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

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

</project>


2.3サービスレジストリを開始する

@EnableEurekaServerのアノテーションは1つだけ必要です。このアノテーションは、springbootプロジェクトのスタートアップアプリケーションクラスに追加する必要があります。


@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

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


Eurekaは高可用性コンポーネントであり、バックエンドキャッシュはありません。各インスタンスが登録された後、レジストリにハートビートを送信する必要があります(メモリ内で実行できるようにします)。デフォルトでは、erurekaサーバーもeurekaです。クライアント、およびサーバーを指定する必要があります。eurekaサーバーの構成ファイルappication.yml:

server:
  port: 8761

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

spring:
  application:
    name: eurka-server
      

eureka.client.registerWithEureka:falseおよびfetchRegistry:falseを使用して、eurekaサーバーであることを示します。

Eurekaサーバーにはインターフェースがあり、プロジェクトを開始し、ブラウザーを開いてアクセスします:
http:// localhost:8761  、インターフェースは次のとおりです。

å¨è¿éæå¥å¾çæè¿°

もちろん、登録されたサービスなしではサービスを見つけることができないため、利用可能なアプリケーションはありません(サービスが見つかりません)。

3つ目は、サービスプロバイダー(eurekaクライアント)を作成することです。

クライアントがサーバーに登録すると、ホストとポート、URL、ホームページなどのメタデータが提供されます。Eurekaサーバーは、各クライアントインスタンスからハートビートメッセージを受信します。ハートビートがタイムアウトした場合、インスタンスは通常、登録済みサーバーから削除されます。

作成プロセスはサーバーに似ており、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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.forezp</groupId>
    <artifactId>service-hi</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>service-hi</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.forezp</groupId>
        <artifactId>sc-f-chapter1</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <dependencies>
        <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-web</artifactId>
        </dependency>
    </dependencies>

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


</project>


@EnableEurekaClientに注釈を付けて、自分がeurekaclientであることを示します。

@SpringBootApplication
@EnableEurekaClient
@RestController
public class ServiceHiApplication {

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

    @Value("${server.port}")
    String port;

    @RequestMapping("/hi")
    public String home(@RequestParam(value = "name", defaultValue = "forezp") String name) {
        return "hi " + name + " ,i am from port:" + port;
    }

}



@EnableEurekaClientだけでは不十分です。また、構成ファイルでサービスレジストリのアドレスを指定する必要があります。application.yml構成ファイルは次のとおりです。

server:
  port: 8762

spring:
  application:
    name: service-hi

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/


spring.application.nameを指定する必要があります。これは非常に重要です。これは通常、サービスとサービス間の将来の呼び出しでこの名前に基づいています。
プロジェクトを開始し、eurekaサーバーのURLであるhttp:// localhost:8761を開きます。

å¨è¿éæå¥å¾çæè¿°

サービスがサービスに登録されていることがわかります。サービス名はSERVICE-HI、ポートは7862です。

次に、  http:// localhost:8762 / hi?name = forezpを開く と、ブラウザに次のように表示されます。

こんにちはforezp、私はポートからです:8762

ソースのダウンロード:https//github.com/forezp/SpringCloudLearning/tree/master/sc-f-chapter1

続きを読む

歴史上最も単純なSpringCloudチュートリアルの要約

SpringBootチュートリアルの概要

Javaインタビューの質問の要約

4、参考資料

http://blog.csdn.net/forezp/article/details/69696915

http://cloud.spring.io/spring-cloud-static/Finchley.RELEASE/single/spring-cloud.html

転載:http//blog.csdn.net/forezp/article/details/81040925

 

 

おすすめ

転載: blog.csdn.net/u014225733/article/details/100536712