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的依赖

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

1.4.创建SCC服务端

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

    1. <dependencies>
    2. <dependency>
    3. <groupId>org.springframework.cloud</groupId>
    4. <artifactId>spring-cloud-starter-config</artifactId>
    5. </dependency>
    6. <dependency>
    7. <groupId>org.springframework.cloud</groupId>
    8. <artifactId>spring-cloud-config-server</artifactId>
    9. </dependency>
    10. <dependency>
    11. <groupId>org.springframework.cloud</groupId>
    12. <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    13. </dependency>
    14. <!--热部署 gav -->
    15. <dependency>
    16. <groupId>org.springframework.boot</groupId>
    17. <artifactId>spring-boot-devtools</artifactId>
    18. <scope>runtime</scope>
    19. <optional>true</optional>
    20. </dependency>
    21. </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 {

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

}

  1. 4. 创建application.yml文件<br />
  2. ```yaml
  3. server:
  4. port: 15000
  5. spring:
  6. application:
  7. name: config-server
  8. cloud:
  9. config: #有关springcloud config的配置
  10. server:
  11. git:
  12. uri: https://gitee.com/yuhongjun01/elm-scc.git #git远程仓库地址
  13. #eureka配置
  14. eureka:
  15. client:
  16. service-url:
  17. #将自己注册给defaultZone所指定的eureka server集群上
  18. defaultZone: http://eurekaServer13000:13000/eureka/,http://eurekaServer13001:13001/eureka/
  19. instance:
  20. prefer-ip-address: true #使用ip地址向eureka server进行注册
  21. instance-id: ${spring.cloud.client.ip-address}:${server.port} #设置eureka控制台中显示的注册信息
  22. lease-renewal-interval-in-seconds: 5 #续约间隔时间
  23. 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工程一致,除了端口号不同。

  1. server:
  2. port: 15001
  3. spring:
  4. application:
  5. name: config-server
  6. cloud:
  7. config: #有关springcloud config的配置
  8. server:
  9. git:
  10. uri: https://gitee.com/yuhongjun01/elm-scc.git #git远程仓库地址
  11. #eureka配置
  12. eureka:
  13. client:
  14. service-url:
  15. #将自己注册给defaultZone所指定的eureka server集群上
  16. defaultZone: http://eurekaServer13000:13000/eureka/,http://eurekaServer13001:13001/eureka/
  17. instance:
  18. prefer-ip-address: true #使用ip地址向eureka server进行注册
  19. instance-id: ${spring.cloud.client.ip-address}:${server.port} #设置eureka控制台中显示的注册信息
  20. lease-renewal-interval-in-seconds: 5 #续约间隔时间
  21. lease-expiration-duration-in-seconds: 15 #续约到期时间