`

spring cloud config

阅读更多
一、什么是spring cloud config
  1.Spring Cloud Config的作用
  在微服务架构系统中,有大量的应用分布在不同机器或容器中运行,如何方便统一的管理这些应用的配置信息是一个不小的挑战,spring cloud config就是用来解决这个问题的.spring cloud config同时包含服务端和客户端支持,其中服务端对应一个配置中心来管理所有应用的外部配置,客户端通过服务端来从配置中心获取自己应用对应的配置信息。无论是服务端还是配置端主要的原理都是把配置信息映射到Environment 和 PropertySource,所以spring cloud config能很好的和spring应用结合起来。
  2.Spring Cloud Config架构图(git)


  3.架构说明
 
  • ⑴ 通过git操作上传、修改配置文件
  • ⑵ config server 模块将git上最新的信息同步到自己的Environment中
  • ⑶ 通过发送post请求触发客户端刷新自己的配置信息(可以在git中追加webhooks来自动实现)
  • ⑷ 客户端接收到post请求后重新从config server中拉取自己对应的配置信息


二、如何使用spring cloud config
  1.官方demo例子
   
  2. 如何使用官方例子(基于git版简单说明)
 

       
  • ⑴ 工程介绍

  •       ① configuration-service:服务端,负责从GIT仓库中获得配置信息
          ② configuration-client:客户端,即我们的应用程序,从server端获取配置信息

      
  • ⑵ server端配置


  •  
      
  • ⑶ client端配置
  •  


      
  • ⑷ git仓库配置



  •   
  • ⑸ git webhooks配置




三、制作server端docker镜像
1.编辑Dockerfile

#基础镜像基于openjdk,利用alpine
FROM openjdk:8-jre-alpine

#所属团队
MAINTAINER chengaofeng
#编译时变量
ARG TARGET_JAR

ENV TARGET_JAR ${TARGET_JAR:-spring-configuration-server-0.0.1-SNAPSHOT.jar}

# git用户和密码
ENV GIT_USERNAME=chengaofeng GIT_PASSWORD=admin222

# 中心化配置git工程URI
ENV GIT_URI=http://192.168.0.104/chengf/config.git
ENV PORT=8888
#将编译好的工程jar包copy到镜像容器中
COPY target/${TARGET_JAR} /usr/src/${TARGET_JAR}

#设置工作目录
WORKDIR /usr/src

#程序入口
CMD java -jar ${TARGET_JAR} --server.port=${PORT} --spring.cloud.config.server.git.uri=${GIT_URI} --spring.cloud.config.server.git.username=${GIT_USERNAME} --spring.cloud.config.server.git.password=${GIT_PASSWORD}

2.  编译镜像,Dockerfile在server工程根目录
docker build -t config-server .

3.  启动镜像
docker run –d -p 8888:8888 config-server

如果git仓库地址变动,或者用户名、密码变更利用对应的启动参数,例如当git仓库地址变更时:
docker run –d  -p 8888:8888  -e GIT_URI="http://www.domain.com/production/config.git" config-server


四、config-server基于本地文件
配置文件:
---
spring:
  cloud:
    config:
      server:
        native:
          searchLocations: classpath:/config

server:
  port: 8888

client需要的配置文件放在 classpath下的config目录中,仍旧是用appName来做区分
如:
client-server1.yml
client-server2.yml
  • 大小: 31.3 KB
  • 大小: 44.9 KB
  • 大小: 43.4 KB
  • 大小: 33.2 KB
  • 大小: 47.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics