1.添加Config集中配置管理集群

本阶段项目完成总架构图中的第六阶段,添加Spring cloud config 实现集中配置管理,并实现Config高可用集群。
elm.png

1.1.搭建远程GIT仓库

按照 “SpringCloud课件” 中 “07.Config配置中心.md” 章节中的内容,搭建远程GIT仓库。

1.2.上传配置文件

上传配置文件:

  • 将食品微服务的配置文件名称修改为:food_server_10200-dev.yml、food_server_10201-dev.yml,然后上传到远程GIT仓库。
  • 将商家微服务的配置文件名称修改为:business_server_10300-dev.yml、business_server_10301-dev.yml,然后上传到远程GIT仓库。
  • 将购物车微服务的配置文件名称修改为:cart_server_10400-dev.yml、cart_server_10401-dev.yml,然后上传到远程GIT仓库。
  • 将送货地址微服务的配置文件名称修改为:deliveryaddress_server_10500-dev.yml、deliveryaddress_server_10501-dev.yml,然后上传到远程GIT仓库。
  • 将订单微服务的配置文件名称修改为:orders_server_10600-dev.yml、orders_server_10601-dev.yml,然后上传到远程GIT仓库。
  • 将用户微服务的配置文件名称修改为:user_server_10100-dev.yml、user_server_10101-dev.yml,然后上传到远程GIT仓库。

为每一个微服务添加bootstrap.yml配置文件:

  1. spring:
  2. cloud:
  3. config:
  4. name: business_server_10300 #应用名称,对应git中的文件名的前半部分
  5. profile: dev #开发环境名称,对应git中的文件名的后半部分
  6. label: master #git分支
  7. discovery: #从Eureka中获取config server信息
  8. enabled: true #开启服务发现
  9. service-id: config-server
  10. #eureka配置
  11. eureka:
  12. client:
  13. service-url:
  14. #将自己注册给defaultZone所指定的eureka server集群上
  15. defaultZone: http://eurekaServer13000:13000/eureka/,http://eurekaServer13001:13001/eureka/
  16. instance:
  17. prefer-ip-address: true #使用ip地址向eureka server进行注册
  18. instance-id: ${spring.cloud.client.ip-address}:${server.port} #设置eureka控制台中显示的注册信息
  19. lease-renewal-interval-in-seconds: 5 #续约间隔时间
  20. lease-expiration-duration-in-seconds: 15 #续约到期时间

在每一个微服务的bootstrap.yml配置文件中的name属性,修改成自己的名称即可。

1.3.修改SCC客户端

给每一个微服务的pom.xml文件中添加SCC的依赖

<!--加入spring-cloud-config的依赖 -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

1.4.创建SCC服务端

  1. 在父工程下,创建 Maven Module 子工程(工程名:config_server_15000;Packaging:jar)
  2. 在pom.xml文件中添加依赖

    <dependencies>
     <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-config</artifactId>
     </dependency>
     <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-config-server</artifactId>
     </dependency>
    
     <dependency>
         <groupId>org.springframework.cloud</groupId>
         <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
     </dependency>
    
     <!--热部署 gav -->
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-devtools</artifactId>
         <scope>runtime</scope>
         <optional>true</optional>
     </dependency>
    </dependencies>
    
  3. 创建主启动类
    package com.neusoft; ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication @EnableConfigServer //开启springcloud config服务端注解 public class MyApplication {

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

}


4. 创建application.yml文件<br />
```yaml
server:
    port: 15000

spring:    
    application:
        name: config-server
    cloud:
        config:            #有关springcloud config的配置          
            server:
                git:
                    uri: https://gitee.com/yuhongjun01/elm-scc.git  #git远程仓库地址

#eureka配置
eureka:
    client:
        service-url:
            #将自己注册给defaultZone所指定的eureka server集群上
            defaultZone: http://eurekaServer13000:13000/eureka/,http://eurekaServer13001:13001/eureka/
    instance:        
        prefer-ip-address: true   #使用ip地址向eureka server进行注册
        instance-id: ${spring.cloud.client.ip-address}:${server.port}   #设置eureka控制台中显示的注册信息   
        lease-renewal-interval-in-seconds: 5         #续约间隔时间
        lease-expiration-duration-in-seconds: 15     #续约到期时间
  1. 测试:启动项目,浏览器地址栏中输入:http://localhost:15000/business_server_10300-dev.yml

1.5.搭建SCC服务端集群

在父工程下,创建 Maven Module 子工程(工程名:config_server_15001;Packaging:jar)。此工程内容与config_server_15000工程一致,除了端口号不同。

server:
    port: 15001

spring:    
    application:
        name: config-server
    cloud:
        config:            #有关springcloud config的配置          
            server:
                git:
                    uri: https://gitee.com/yuhongjun01/elm-scc.git  #git远程仓库地址

#eureka配置
eureka:
    client:
        service-url:
            #将自己注册给defaultZone所指定的eureka server集群上
            defaultZone: http://eurekaServer13000:13000/eureka/,http://eurekaServer13001:13001/eureka/
    instance:        
        prefer-ip-address: true   #使用ip地址向eureka server进行注册
        instance-id: ${spring.cloud.client.ip-address}:${server.port}   #设置eureka控制台中显示的注册信息   
        lease-renewal-interval-in-seconds: 5         #续约间隔时间
        lease-expiration-duration-in-seconds: 15     #续约到期时间