zoukankan      html  css  js  c++  java
  • Config

    学习笔记

    作用:分布式配置中心

    简介:在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。SpringCloud Config提供服务器端和客户端。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

     

     

    分布式配置中心服务端

    pom.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
      </parent>
      
      <!-- 管理依赖 -->
      <dependencyManagement>
          <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
          </dependencies>
      </dependencyManagement>
      
      <dependencies>
        <!-- SpringCloud eureka-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
      </dependencies>
      
      <!-- 注意:这里必须要添加,否则各种依赖有问题 -->
      <repositories>
          <repository>
              <id>spring-milestones</id>
              <name>Spring Milestones</name>
              <url>https://repo.spring.io/libs-milestone</url>
              <snapshots>
                  <enabled>false</enabled>
              </snapshots>
          </repository>
      </repositories>

    启动类通过 @EnableConfigServer 注解,开启配置服务器功能

    application.yml

    spring:
      application:
        name: mobileshop-config
      cloud:
        config:
          label: master
          server:
            git:
              uri: https://github.com/tripleDemo/springcloud-config.git
              search-paths: respo
              username: 
              password: 
    
    server:
      port: 8888
    
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/

    相关配置说明,如下:

    • spring.cloud.config.label:配置仓库的分支
    • spring.cloud.config.server.git.uri:配置 Git 仓库地址(GitHub、GitLab、码云 ...)
    • spring.cloud.config.server.git.search-paths:配置仓库路径(存放配置文件的目录)
    • spring.cloud.config.server.git.username:访问 Git 仓库的账号
    • spring.cloud.config.server.git.password:访问 Git 仓库的密码

    测试

    证明配置服务中心可以从远程程序获取配置信息

    附:HTTP 请求地址和资源文件映射

    • http://ip:port/{application}/{profile}[/{label}]
    • http://ip:port/{application}-{profile}.yml
    • http://ip:port/{label}/{application}-{profile}.yml
    • http://ip:port/{application}-{profile}.properties
    • http://ip:port/{label}/{application}-{profile}.properties

    分布式配置中心客户端

    pom.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
      </parent>
      
      <!-- 管理依赖 -->
      <dependencyManagement>
          <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
          </dependencies>
      </dependencyManagement>
      
      <dependencies>
        <!-- SpringCloud eureka-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
         </dependency>
         <dependency>
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-config</artifactId>
             <version>2.1.4.RELEASE</version>
          </dependency>
      </dependencies>
      
      <!-- 注意:这里必须要添加,否则各种依赖有问题 -->
      <repositories>
          <repository>
              <id>spring-milestones</id>
              <name>Spring Milestones</name>
              <url>https://repo.spring.io/libs-milestone</url>
              <snapshots>
                  <enabled>false</enabled>
              </snapshots>
          </repository>
      </repositories>

    启动类没有需要特殊处理的地方

    application.yml

    spring:
      cloud:
        config:
          uri: http://localhost:8888
          name: api-seller-feign
          label: master
          profile: dev

    相关配置说明,如下:

    • spring.cloud.config.uri:配置服务中心的网址
    • spring.cloud.config.name:配置文件名称的前缀
    • spring.cloud.config.label:配置仓库的分支
    • spring.cloud.config.profile:配置文件的环境标识
      • dev:表示开发环境
      • test:表示测试环境
      • prod:表示生产环境

    开启 Spring Boot Profile

    只需要为不同的环境编写专门的配置文件,如:application-dev.ymlapplication-prod.yml, 启动项目时只需要增加一个命令参数 --spring.profiles.active=环境配置即可(默认dev)

     

  • 相关阅读:
    How to change the property of a control from a flowlayoutpanel?
    Add controls dynamically in flowlayoutpanel
    CLR via C# 读书笔记 6-2 不同AppDomain之间的通信 z
    应用程序域 z
    C# 在SQLite数据库中存储图像 z
    Using .NET 4's Lazy<T> 实现单实例
    tpl demo
    SQLite批量插入,修改数据库 zt
    Dev表格导出工具类 z
    easyui 设置一加载,搜索框立即弹出的效果
  • 原文地址:https://www.cnblogs.com/tripleDemo/p/11656992.html
Copyright © 2011-2022 走看看