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
ノートを
で標識した場合には、構成変更、構成を検証するために、特別な治療を与えることになります。@RefreshScope
Bean
手動でリフレッシュインタフェース
ポストは、手動で更新を要求します
http://127.0.0.1:8000/actuator/refresh cofnigサーバから読み込んリフレッシュを開始