1-- [SpringCloud] --13分散構成中心SpringCloud構成

1なぜ分散構成・センターを使用できますか?

システム・コンフィギュレーション・ファイルが変更された場合、私たちを有効にする新しい設定ファイルを作成するために、サービスを再起動する必要があり、spring cloud configあなたはすべてのシステムに統合された管理プロファイルマイクロサービスを実現することができますが、プロファイルが発生したときにも達成することができます変更は、システムが自動的に新しいコンフィギュレーションを取得するために更新します。

ホットデプロイの違いは?

開発者のためのホットデプロイメント環境、まだサーバーを再起動しますので。

ホット・デプロイは、本番環境には適していません。

2つの分散構成センターフレーム設計原理

ここに画像を挿入説明

なぜ1をデザインしなければなりませんかConfigServer

ConfigServer取得git環境プロファイル情報を。

目的は、キャッシュすることでgit上記のプロファイル情報を。

3社は、環境プロジェクトを区別する

ビルドgit目的環境:永続ストア・プロファイル情報(コード使用してクラウド)。

git 何を区別するフォルダの環境?

gitフォルダの環境项目分化します。

  • member_config:メンバーのプロフィール
  • order_config:オーダーサービスプロファイル

会社の事業環境はどのように区別するために?

  • dev:開発環境
  • sit:環境試験
  • pre:プレリリース環境
  • prd:準本番環境

クラウド環境を構築するための四つのヤード

ビルドするために使用するコードクラウド環境gitのサーバー側:

ここに画像を挿入説明

新しいtestconfigフォルダ

ここに画像を挿入説明

5サーバー側を作成します

新しいプロジェクトを作成します。

ここに画像を挿入説明

依存性の導入:

<dependencies>
    <!--spring-cloud 整合 config-server -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    <!-- SpringBoot整合eureka客户端 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
</dependencies>

application.yml

### 服务注册到eureka地址
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8100/eureka
spring:
  application:
    #### 注册中心应用名称
    name: config-server
  cloud:
    config:
      server:
        git:
          ### git环境地址
          uri: https://gitee.com/ylx20180828/config.git
          #### 搜索目录
          search-paths:
            - testconfig
      #### 读取分支
      label: master
#### 端口号
server:
  port: 8888

スタートアップの項目

package com.snow.config;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;

@EnableConfigServer // 开启configserver服务端
@EnableEurekaClient
@SpringBootApplication
public class ConfigApp {

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

@EnableConfigServer:オープン分散構成のセンターサーバ

6ヤードクラウド上のプロファイルを作成します。

命名規則上のgitのでプロファイルを作成します。

服务名称-环境.properties

たとえば、次の会員サービス

member-dev.properties

ファイルを作成します。

テスト環境:
ここに画像を挿入説明

本番環境:

ここに画像を挿入説明

取得することができ、サーバの設定ファイルをテスト

スタートcloud-configサービス:
ブラウザアクセス:http://127.0.0.1:8888/member-prd.properties

ここに画像を挿入説明

ここに画像を挿入説明

7クライアントが読み込むcloud-config設定ファイルを

cloud-member 依存追加

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

設定ファイルを変更します。bootstrap.yml

### 服务启动端口号
server:
  port: 8000

### 服务名称(服务注册到eureka名称)
spring:
  application:
    ### 服务名称需要与git创建的配置文件的名称前缀相同,member-sit.properties
    name: member
  cloud:
    config:
      #### 读取后缀
      profile: sit
      #### 读取config-server注册地址
      discovery:
        service-id: config-server
        enabled: true

### 服务注册到eureka地址
eureka:
  client:
    service-url: # EurekaServer地址
      defaultZone: http://127.0.0.1:8100/eureka

試験用のコントローラを作成します。

package com.snow.member.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @Value("${myName}")
    private String name;

    @RequestMapping("/name")
    private String name() {
        return name;
    }

}

スタートアップの項目を作成します。

package com.snow.member;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class MemberApp {

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

テスト

サービスを開始し、ブラウザアクセス:http://127.0.0.1:8000/name

ここに画像を挿入説明

8 ダイナミックリフレッシュデータ

デフォルトでは、コンフィギュレーション・ファイルは、リアルタイムの情報に更新されません。

ではSpringCloud、2つの方法で手動更新設定ファイルとリアルタイムリフレッシュ設定ファイル。

  • 手動で使用してactuatorエンドポイントの更新データを
  • 使用してリアルタイムで更新SpringCloud Busメッセージ・バスを

手動および自動リフレッシュリフレッシュは、サーバーを再起動する必要はありません。一般的には、パフォーマンスの低下を自動的にリフレッシュするので、手動でリフレッシュを使用することをお勧めします。

8.1 actuatorエンドポイントリフレッシュデータ

依存追加

<!-- actuator监控中心 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

bootstrap.yml 新しいです

### 开启监控端点
management:
  endpoints:
    web:
      exposure:
        include: "*"

力の前提への参入:リフレッシュする必要がBean追加@RefreshScopeノートを

ここに画像を挿入説明

で標識した場合には、構成変更、構成を検証するために、特別な治療を与えることになります。@RefreshScopeBean

手動でリフレッシュインタフェース

ポストは、手動で更新を要求します

http://127.0.0.1:8000/actuator/refresh cofnigサーバから読み込んリフレッシュを開始

675元記事公開 ウォンの賞賛214 ビューに14万+を

おすすめ

転載: blog.csdn.net/weixin_42112635/article/details/104702387