記事のディレクトリ
分散システムの問題の1存在 - 構成の問題
である、管理が難しい、SpringBootプロジェクトは、多くのapplication.ymlプロファイルがあることを意味マッピングし、分散システムは、小型のサービスの多くは、そのようなサービスの多くはシステム内に存在があることを意味しますが、各サービスは、構成情報を実行する必要がありますSpringCloud、すなわちの使用、この問題を解決するためにCONFIGSERVERを提供SpringServerは、このサービスはすべてのサービスが一元化さ、動的構成した設定ファイルを実装します
何2.構成サービス
SpringCloudコンフィグはマイクロマイクロアーキテクチャのサポートサービス外部のコンフィギュレーションのための集中サービスを提供し、コンフィギュレーションサーバは、すべてのサービスアプリケーション用にそれぞれ異なるマイクロ環境のための集中外観構成を提供します
3.構成サービスを行うことができます
- 集中管理プロファイル
- 異なる環境では異なる構成、動的構成の更新
- 動作中に動的に設定を調整し、もはやそれぞれのマシンのサービス展開上の設定ファイルを記述する必要がない、統一されたサービスは、コンフィギュレーション・センターへのコンフィギュレーション情報を引っ張ってきます
- 場合は、設定の変更は、設定の認識を変更し、新しい設定を適用する必要はありませんサービスを再起動することができます
- 露出RESTインタフェースの形態の構成情報
4.プロジェクトの戦闘
サーバとクライアントに分けSpringCloud構成は、サーバが独立したサービスであり、分散構成の中心と呼ばれるコンフィギュレーション情報、暗号化/復号化及び他のアクセスインタフェースを提供するように構成されたサーバとクライアントを接続するために使用される、クライアントによってアプリケーション・リソースを管理し、コンテンツ関連事業を構成するために物流センターを設立し、取得して、ブート時にコンフィギュレーション・センターからロードするコンフィギュレーション情報は、サービスプロバイダのプロバイダを理解することができます。設定ファイルは、通常はgitの上に置かれています
4.1 githubの設定
それぞれのプロファイルgithubの上に置かれ、ファイル名:積分game.yml
spring:
profiles:
active: dev //@profileActive@
---
server:
port: 8090
servlet:
context-path: /game-web
spring:
profiles: dev
application:
name: integral-game-provider
main:
allow-bean-definition-overriding: true
eureka:
client:
service-url:
#客户端注册进eureka服务列表内
defaultZone: http://192.168.22.126:7001/eureka/
instance:
preferIpAddress: true
ipAddress: 192.168.22.126
#注册到eureka后,status的名字(服务在eureka的唯一标志)
instance-id: ${spring.application.name}:${random.int}
#访问路径可以显示IP地址
prefer-ip-address: true
info:
app.name: provider-dept-8001
company.name: www.tfjybj.com
build.artifactId: $project.artifactId$
build.version: $project.version$
---
server:
port: 8090
servlet:
context-path: /game-web
spring:
profiles: test
application:
name: integral-game-provider
main:
allow-bean-definition-overriding: true
eureka:
client:
service-url:
#客户端注册进eureka服务列表内
defaultZone: http://192.168.22.227:7001/eureka/
instance:
#注册到eureka后,status的名字(服务在eureka的唯一标志)
instance-id: ${spring.application.name}:${random.int}
#访问路径可以显示IP地址
prefer-ip-address: true
info:
app.name: provider-dept-8001
company.name: www.tfjybj.com
build.artifactId: $project.artifactId$
build.version: $project.version$
4.2コンフィグサーバの設定
4.2.1コンフィグサーバ接続githubの
YMLファイルサーバを次のようにコンフィグ設定は次のとおりです。
server:
port: 3344
spring:
application:
name: cloud-config-service
cloud:
config:
server:
git:
uri: [email protected]:zzyybs/microservicecloud-config.git #GitHub上面的git仓库名字
githubのサーバーの接続が確立されるに及びそう、それはgitリポジトリを設定するリモートで読み取ることができます
4.2.2起動時の構成スタートアップ項目の注釈付き@EnableConfigServer
@EnableConfigServer
@SpringBootApplication
public class CloudConfigApplication {
public static void main(String[] args) {
SpringApplication.run(CloudConfigApplication.class, args);
}
}
4.3クライアントの設定
次のように4.3.1 application.ymlが設定さ:
spring:
application:
name: integral-game-provider
次のように構成された4.3.2 bootstrap.yml:
spring:
cloud:
config:
name: integral-game //读取github上的那个文件对应的文件名 integral-game.yml,不带yml后缀名
#正常方式应该从github上更改
profile: dev //@profileActive@ ,拉取dev环境配置
#label: master // 从github的master
label: integral-config
uri: http://192.168.22.126:3344 // Config服务端地址
main:
allow-bean-definition-overriding: true
注釈付き4.3.3スタートアップの項目
@SpringBootApplication
//本服务启动后会自动注册进eureka服务中
@EnableEurekaClient
//服务发现
@EnableDiscoveryClient
public class IntegralGameProviderApplication {
public static void main(String[] args) {
SpringApplication.run(IntegralGameProviderApplication.class, args);
}
}
その理由bootstrap.ymlファイル内の構成情報を書き込む必要があり、外部ファイルはbootstrap.ymlファイルに書き込まれた構成情報を読み取ることに留意:application.ymlユーザーレベルのリソースの設定項目、およびbootstrap.ymlありますシステムレベル、より高い優先順位。SpringCloudは、親アプリケーションのコンテキストとしてブートストラップコンテキストアプリケーション・コンテキストの春を作成します。初期化、ブートストラップコンテキストが外部リソースからロードする構成プロパティに責任があると構成を解決する、環境を共有する両方のコンテキストは、外部から取得したが、ブートストラップ高い優先順位は、デフォルトでは、彼らはローカル設定でカバーされることはありません。