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

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

  • 相关阅读:
    python note 30 断点续传
    python note 29 线程创建
    python note 28 socketserver
    python note 27 粘包
    python note 26 socket
    python note 25 约束
    Sed 用法
    python note 24 反射
    python note 23 组合
    python note 22 面向对象成员
  • 原文地址:https://www.cnblogs.com/wangkee/p/9331033.html
Copyright © 2011-2022 走看看