springCloud-高可用性構成センター構成

再版のソースを示してください:
http : //blog.csdn.net/forezp/article/details/70037513
この記事はFang Zhipengのブログからです

前の記事では、サービスが構成センターからファイルを読み取る方法と、リモートgitから構成ファイルを読み取る方法について説明しました。サービスインスタンスが多数ある場合、すべてのファイルが構成センターから読み取られます。現時点では、構成センターをマイクロサービスは、高可用性を実現するためにクラスター化されています。アーキテクチャ図は次のとおりです。

Azure(3).png

1.準備

前の記事のプロジェクトを引き続き使用し、サービスレジストリとして機能するeureka-serverプロジェクトを作成します。

pom.xmlファイルでのEurekaの導入は、spring-cloud-starter-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>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

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

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</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>Dalston.RC1</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>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26日
  • 27日
  • 28
  • 29日
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78

構成ファイルapplication.ymlで、サービスポートを8889として指定し、基本構成をサービス登録センターとして指定すると、コードは次のようになります。

server:
  port: 8889

eureka:
  instance:
    hostname: localhost
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

入学クラス:

@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

次に、config-serverを変換します

EurekaClientをpom.xmlファイルに追加するには、spring-cloud-starter-eurekaを使用します。コードは次のとおりです。

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
    </dependencies>
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

構成ファイルapplication.yml、サービス登録アドレスをhttp:// localhost:8889 / eureka /として指定します。他の構成は前の記事と同じです。完全な構成は次のとおりです。

spring.application.name=config-server
server.port=8888

spring.cloud.config.server.git.uri=https://github.com/forezp/SpringcloudConfig/
spring.cloud.config.server.git.searchPaths=respo
spring.cloud.config.label=master
spring.cloud.config.server.git.username= your username
spring.cloud.config.server.git.password= your password
eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

最後に、@ EnableEurekaアノテーションをアプリケーションのスタートアップクラスApplicationに追加する必要があります。

3、config-clientを変換する

これをサービス登録センターに登録します。Eurekaクライアントとして、pomファイルと起動依存関係spring-cloud-starter-eurekaが必要です。コードは次のとおりです。

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-eureka</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

設定ファイルbootstrap.propertiesは、bootstrapに注意してください。さらに、サービス登録アドレスはhttp:// localhost:8889 / eureka /

spring.application.name=config-client
spring.cloud.config.label=master
spring.cloud.config.profile=dev
#spring.cloud.config.uri= http://localhost:8888/

eureka.client.serviceUrl.defaultZone=http://localhost:8889/eureka/
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.serviceId=config-server
server.port=8881

  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • spring.cloud.config.discovery.enabledは、構成センターからファイルを読み取るためのものです。
  • spring.cloud.config.discovery.serviceId構成センターのserviceId、つまりサービス名。

現時点では、構成ファイルを読み取るときに、IPアドレスではなくサービス名が書き込まれていることがわかりました。この時点で構成サービスの複数のコピーがデプロイされている場合は、負荷分散を使用して高可用性を実現しています。

eureka-servr、config-server、config-clientを順に起動して
、URL アクセスします:http:// localhost:8889 /

Paste_Image.png

http:// localhost:8881 / hiアクセスすると、ブラウザに次のように表示されます。

fooバージョン3

この記事のソースコードをダウンロード:https :
//github.com/forezp/SpringCloudLearning/tree/master/chapter7

4.参考資料

spring_cloud_config

リリース7件のオリジナルの記事 ウォン称賛69 ビュー200,000 +

おすすめ

転載: blog.csdn.net/u014320421/article/details/79700120