zoukankan      html  css  js  c++  java
  • spring cloud 分布式配置(使用git进行远程配置)

    我们使用分布式架构 搭建项目时 就比如说我们更改了数据库的密码

    那如果有十几个微服务配置在不同的服务器上 我们是不是得一个一个服务器的去更改 

    那样就相当的麻烦 不光麻烦 还及其容易错 所以基本是不可能这样实现

    这里有一个解决方式 可以把项目的配置放到gitlab上 从gitlab来读取 这样就方便了我们的配置 

    那么就要登陆到gitlab上创建账号 发布项目 等等 这些东西可以到

    https://blog.csdn.net/Adelly/article/details/79099772 这个教程看一下 这里不多说 

    然后在项目中创建一个配置中心的模块 

    // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server
        compile group: 'org.springframework.cloud', name: 'spring-cloud-config-server'

    添加config-server的依赖 因为它是配置中心服务端 在客户端的话需要添加

    // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config
        compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-config'

    接着往下看 配置中心的配置文件 

    spring:
      application:
        name: config-center //项目名
      cloud:
        config:
          server:
            git:
              uri: https://gitlab.com/wangkeee/poppy-mall.git  //git的地址 
              clone-on-start: true //是否在使用配置文件时拷贝到本地 
              search-paths: local //读取项目中的那个文件夹
    server:
      port: 8887 //端口号

    注意 这里的配置文件需要使用bootstrap.yml 而不是之前使用的application.yml 

    他们基本上是一样的 但bootstrap.yml的执行要比application.yml优先 

    想一下 在读取项目时 配置文件当然是需要优先读取的 在本地的话倒还好 这里把配置文件放到git上 读取缓慢 所以需要优先读取

    然后看一下git项目的搭建 

    在文件夹中创建微服务的配置文件 并且把微服务的配置文件的内容拷贝进去 

    文件的命名是配置文件中

    spring:
      application:
        name:

    的值.yml 

    然后就可以把对应微服务的配置文件删除 也加上一个bootstrap.yml 

    看一下里面的配置

    spring:
      application:
        name: project-poppy-mall //项目名
      cloud:
        config:
          uri: http://localhost:8887 //配置中心的地址

    在配置中心的启动类上 加上

    @SpringBootApplication //启动项目
    @EnableConfigServer //代表它是一个配置中心

    然后就可以运行配置中心 就可以运行成功了 

     然后就可以照常运行删除了配置文件的微服务了 如果想对微服务的配置文件更改只需要登陆gitlab上进行更改就行了 非常方便

    但这样做我们想切换环境 比如把项目打成jar包到测试那边 是不是每次都需要一个一个的更改配置文件 当然不能这么干 那我们就可以通过这种方式

    把配置文件分成三个 bootstrap-local与bootstrap-test文件中的代码基本与原配置文件一样 只是test的访问文件夹是test

    bootstrap的代码就只有

    spring:
      profiles:
        active: test

    代表指定它是测试环境 但这样做也不大好 我们每次还是要修改代码 那么能不能不修改代码就能改变成测试或开发环境呢

    我们通过build任务把项目打成jar包 

    之后可以在cmd中通过java -jar来打开这个jar包 我们只需要在语句后面输入java -jar jar包名 --spring.profiles.active=test或者local

    就可以指定开发或生产环境了 

  • 相关阅读:
    290. Word Pattern
    283. Move Zeroes
    278. First Bad Version
    276. Paint Fence
    270. Closest Binary Search Tree Value
    [jobdu]二进制中1的个数
    [jobdu]丑数
    Skip List
    [wikioi]没有上司的舞会
    POJ3984 迷宫问题
  • 原文地址:https://www.cnblogs.com/wangkee/p/9331033.html
Copyright © 2011-2022 走看看