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サーバーはサービスレジストリ内の情報を保護しようとし、サービスレジストリ内のデータを削除しなくなります(つまり、マイクロサービスからログアウトしません)。
これまでのところ:登録センターが書かれ、コードのダウンロードアドレス:
それから学び続けてください...さあ...