Eclipseの実行時設定SpringCloud(ホクストン+ 2.2.4)マイクロサービスフレームワーク+可用性の高い分散構成センター春の雲コンフィグ

簡単な紹介

スプリングクラウド構成は、分散型システムインフラストラクチャサービスとして使用され、マイクロアプリケーションは二つの部分CONFIGSERVER ConfigClientにサーバとクライアントとに分割された外部構成をサポートし、集中しました。サービスセンター側は、分散構成と呼ばれており、それは独立したマイクロサービスアプリケーション、倉庫および構成情報、暗号化/復号化情報アクセスインタフェース等へのアクセスを提供するためにクライアントを接続するように構成され、そしてクライアントは、マイクロサービスアーキテクチャであります個々のマイクロサービスアプリケーションやインフラストラクチャが、彼らは、ブート時にコンフィギュレーション・センターからアプリケーションのリソースと設定指定された設定の中心を通るビジネス関連コンテンツ、および取得とロードの設定情報を管理します。外部のSpringアプリケーションを構築するだけでなく、適用されますので、春の雲コンフィグは、サーバとクライアントの環境変数と構成プロパティの抽象マッピングを達成するため、また他の言語で実行する任意のアプリケーションで使用することができます。春クラウドコンフィグストアの構成情報にGitリポジトリを使用して、コンフィギュレーション・センターのデフォルトを達成するので、春クラウドコンフィグはマイクロサービスアプリケーションの構成情報のためのサポートバージョン管理に自然に構築構成サーバーを使用して、管理のGitのクライアントツールで簡単にできます設定およびアクセス内容。
ここに画像を挿入説明

サーバーの構成Configをサーバ(HA)

ここに画像を挿入説明

ファイルの依存関係にのpom.xmlを追加

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.springcloud</groupId>
    <artifactId>springcloud-root</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>springcloud-config-server</artifactId>
  <name>springcloud-config-server</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-config-server</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-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

Application.yml設定ファイル

ここに画像を挿入説明

  • application.yml
spring:
  application:
    name: springcloud-config-server
  freemarker:
    prefer-file-system-access: false
  security:
    user:
      name: admin
      password: 123456
  cloud:
    config:
      # 配置仓库的分支
      label: master
      server:
        git:
          # 配置git仓库地址
          # uri: [email protected]/springcloud-config.git
          uri: file:E:/SpringBoot/SpringCloud/springcloud-root/springcloud-config
          # 配置仓库路径
          search-paths: config-file
          # 访问git仓库的用户名
          username: zhaojq
          # 访问git仓库的用户密码
          password: 123456

server:
  port: 8130

eureka:
  instance:
    hostname: eureka-config-server.com
    instance-id: eureka-config-server
  client:
    service-url:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer1.com:8897/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer2.com:8898/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer3.com:8899/eureka/

変更C:\ WINDOWS \ System32に\ drivers \ etcに\ホスト

127.0.0.1 eureka-config-server.com

ローカルのGitリポジトリを設定します

gitのサービスをダウンロードしてインストール
https://git-scm.com/

gitのbashの構成:

git config --global user.name "zhaojq" 
git config --global user.email "[email protected]"
git config --global user.password "123456"

ローカルのgitリポジトリを作成します。
ここに画像を挿入説明
ここに画像を挿入説明

  • application-test.properties
    テスト環境設定ファイル
    ここに画像を挿入説明

  • application-dev.properties
    開発環境の設定ファイル
    ここに画像を挿入説明

  • application-pro.properties
    正式な環境設定ファイルを
    ここに画像を挿入説明

コンフィグサーバの起動クラスを追加します。

ここに画像を挿入説明

  • ConfigServerApplication.java

起動クラスプラス@EnableConfigServerコメントで

package org.springcloud.config.server;

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

@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {

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

テストコンフィグサーバ

スタート-CONFIG-Serverプロジェクトspringcloud
ここに画像を挿入説明
HTTPリクエストとアドレスリソースファイルマッピングは次のとおりです。

  • / {アプリケーション} / {プロファイル} / {ラベル}]
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

アクセスアドレスhttp://eureka-config-server.com:8130/application/test/master
ここに画像を挿入説明
アクセスアドレスhttp://eureka-config-server.com:8130/application-test.yml
ここに画像を挿入説明
アクセスアドレスのhttp:// eureka- config-server.com:8130/master/application-test.yml
ここに画像を挿入説明
アクセスアドレスhttp://eureka-config-server.com:8130/application-test.properties
ここに画像を挿入説明
アクセスアドレスhttp://eureka-config-server.com: 8130 /マスター/ application-test.properties
ここに画像を挿入説明
アクセスアドレスhttp://eureka-config-server.com:8130/master/testは、
ここに画像を挿入説明
サービスセンターは、構成情報を取得することができます構成することを証明。

クライアントの構成Configをクライアント

ここに画像を挿入説明

ファイルの依存関係にのpom.xmlを追加

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.springcloud</groupId>
    <artifactId>springcloud-root</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>springcloud-config-client</artifactId>
  <name>springcloud-config-client</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <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-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Bootstrap.yml設定ファイル

spring:
  application:
    name: springcloud-config-client
  freemarker:
    prefer-file-system-access: false
  security:
    user:
      name: admin
      password: 123456
  profiles:
    #读取测试环境配置文件
    #active: test
    #读取开发环境配置文件
    #active: dev
    #读取正式环境配置文件
    active: pro    
  cloud:
    config:
      label: master
      fail-fast: true
      #指明配置服务中心的网址
      uri: http://eureka-config-server.com:8130

server:
  port: 8131

eureka:
  instance:
    hostname: eureka-config-client.com
    instance-id: eureka-config-client
  client:
    service-url:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer1.com:8897/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer2.com:8898/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer3.com:8899/eureka/

テストコンフィグクライアント

スタート-設定-クライアントプロジェクトspringcloud
ここに画像を挿入説明
コンフィグクライアントが正常にコンフィグサーバへの公式の環境設定ファイルを読み込みます。

クライアントの構成Configをクライアント(HA)

参考https://blog.csdn.net/miaodichiyou/article/details/104160284

修正springcloud-ユーレカ・プロバイダー・プログラム

ここに画像を挿入説明

依存関係ファイルのpom.xml

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.springcloud</groupId>
    <artifactId>springcloud-root</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>springcloud-eureka-provider</artifactId>
  <name>springcloud-eureka-provider</name>
  <url>http://maven.apache.org</url>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>
    <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-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

bootstrap.ymlファイルを増やします

spring:
  application:
    name: springcloud-eureka-provider
  freemarker:
    prefer-file-system-access: false
  security:
    user:
      name: admin
      password: 123456
  cloud:
    config:
      #profile: dev
      label: master
      fail-fast: true
      #指明配置服务中心的网址
      uri: http://eureka-config-server.com:8130
      #discovery:
        #service-id: springcloud-config-server
        #enabled: true
eureka:
  client:
    service-url:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer1.com:8897/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer2.com:8898/eureka/,http://${spring.security.user.name}:${spring.security.user.password}@eureka-peer3.com:8899/eureka/

修正アプリケーションprovider.yml

  • アプリケーションprovider1.yml
spring:
  cloud:
    config:
      profile: dev

server:
  port: 8001
  
eureka:
  instance:
    hostname: eureka-provider1.com
    instance-id: eureka-provider1
  • アプリケーションprovider2.yml
spring:
  cloud:
    config:
      profile: pro
    
server:
  port: 8002
  
eureka:
  instance:
    hostname: eureka-provider2.com
    instance-id: eureka-provider2
  • アプリケーションprovider3.yml増加
spring:
  cloud:
    config:
      profile: test

server:
  port: 8003
  
eureka:
  instance:
    hostname: eureka-provider3.com
    instance-id: eureka-provider3

ファイルを追加します。

  • ConfigProviderApplication.java
package org.springcloud.eureka.provider;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class ConfigProviderApplication {

    @Value("${content}")
    String content;

    @Value("${server.port}")
    String port;

    @RequestMapping("/config")
    public String Home(@RequestParam String name) {
        return "Hello "+name+", This is from serverport:" + port+",content="+content;
    }

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

プロジェクトを開始するためには、

springcloud-ユーレカ・クラスタ・ピア1
springcloud-ユーレカ・クラスタ・ピア2
springcloud-ユーレカ・クラスタpeer3
springcloud-config設定サーバ
springcloud-ユーレカ-provider1
springcloud-ユーレカ-provider2
springcloud-ユーレカ-provider3

ここに画像を挿入説明

ブラウザアクセスhttp://eureka-provider1.com:8001/config?name=zhaojq
ここに画像を挿入説明

ブラウザアクセスhttp://eureka-provider2.com:8002/config?name=zhaojq
ここに画像を挿入説明

ブラウザアクセスhttp://eureka-provider3.com:8003/config?name=zhaojq
ここに画像を挿入説明

装うテスト

参考https://blog.csdn.net/miaodichiyou/article/details/104304853

以下のファイルを変更します。

  • FeignConsumer.java
package org.springcloud.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Component
/*指定这个接口所要调用的提供者服务名称 */
@FeignClient(value = "springcloud-eureka-provider",configuration = FeignConfig.class,fallback = FeignHystrix.class)

public interface FeignConsumer {
    @GetMapping(value = "/hi")
    String sayHiFromEurekaProvider(@RequestParam(value = "name")String name);
    
    @GetMapping(value = "/config")
    String getConfigFromConfigServer(@RequestParam(value = "name")String name);
}
  • FeignController.java
package org.springcloud.feign;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/*调用提供者的home方法*/
@RestController
public class FeignController {
    @Autowired
    FeignService feignService;

    @GetMapping("/hi")
    public String hi(@RequestParam(defaultValue = "zhaojq",required = false)String name){
        return feignService.hi(name);
    }
    
    @GetMapping("/config")
    public String config(@RequestParam(defaultValue = "zhaojq",required = false)String name){
        return feignService.config(name);
    }
}
  • FeignService.java
package org.springcloud.feign;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class FeignService {
    @Autowired
    FeignConsumer feignConsumer;
    public String hi(String name){
        return feignConsumer.sayHiFromEurekaProvider(name);
    }
    
    public String config(String name){
        return feignConsumer.getConfigFromConfigServer(name);
    }
}
  • FeignConsumer.java
package org.springcloud.feign;

import org.springframework.stereotype.Component;

@Component
public class FeignHystrix implements FeignConsumer {

    @Override
    public String sayHiFromEurekaProvider(String name) {
        return "hi,"+name+", use Feign + hystrix, eureka-provider is down!";
    }
    
    @Override
    public String getConfigFromConfigServer(String name) {
        return "hi,"+name+", use Feign + hystrix, eureka-provider is down!";
    }
}

スタートspringcloud-装う
コマンドウィンドウカールhttp://eureka-feign.com:8101/configに、装うは、ロードバランシングを実現することが見出されています
ここに画像を挿入説明

72元記事公開 ウォン称賛66 ビュー150,000 +を

おすすめ

転載: blog.csdn.net/miaodichiyou/article/details/104420764