SpringCloud之配置中心

前言

随着微服务越来越多,服务的配置文件也越来越多,这个时候对于配置文件的管理其实可以完全抽离出来,对于项目启动时需要的配置写入到bootstrap.yml中,那些可能会经常改变的则放到svn或者git上进行管理,项目启动时,会去git或者svn上拉取对应的配置文件启动。

创建配置中心项目

入口文件添加@EnableConfigServer注解

配置文件:

#服务名称
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
            #这里填写你自己的git项目路径,用户名密码
        git:
          uri: https://gitee.com/flyOX/config-center
          username: flyOX
          password: ××××××
          timeout: 5
          default-label: master

#服务的端口号
server:
  port: 9100

#指定注册中心地址
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

到这里那么配置中心就已经开发完成。

改造业务服务从配置中心获取配置文件

针对网关、商品服务、订单服务、我在 https://gitee.com/flyOX/config-center做了相应的一个配置文件

1.修改application.yml配置文件为bootstrap.yml,该出如下内容:

#指定注册中心地址
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

#服务的名称
spring:
  application:
      #name不同业务服务名ServiceId
    name: order-service
  #指定从配置中心
  cloud:
    config:
      discovery:
        service-id: CONFIG-SERVER
        enabled: true
      profile: test

2.pom文件添加Config客户端包

       <!--配置中心客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-client</artifactId>
        </dependency>

那么我们重新启动项目,一定要注意项目启动顺序:注册中心->配置中心->产品服务->订单服务->网关服务。到注册中心控制台查看相应服务是否以及启动起来了。

同时看看相应的服务控制台输出的内容:

它是通过拉取git上的文件启动的。那么到这里我们就以及把配置中心启动起来了。

实现自动拉取最新配置文件

上面可以从git拉取配置文件,但是如果git上文件修改了,又不想通过重启服务来拉取最新的配置文件我们该怎么做呢?我们可以通过RabbitMQ+Refresh的方式做自动获取最新配置。
这里就是SpringCloud中的Bus:消息总线的方式,如果一旦配置文件修改,就发送一条消息到队列中,那么服务接受到消息则去拉取最新配置,这样就解决了这个问题。

1.安装一个RabbitMQ,可以通过docker安装,很快。
2.pom文件中添加依赖:

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

3.在配置文件中添加如下:

spring:
                  rabbitmq:
                    host: localhost
                    port: 5672
                    username: guest
                    password: guest

4.暴露全部的监控信息

management:
                  endpoints:
                    web:
                      exposure:
                        include: "*"

5.需要拉取最新的地方添加@RefreshScope注解

6.http://服务ip:端口/actuator/bus-refresh

备注:动态刷新配置 在开发和测试环境使用,尽量不要或者少在生产环境使用。

参考资料:消息总线
项目文件

原文地址:http://blog.51cto.com/4837471/2321802

时间: 2024-08-26 18:45:22

SpringCloud之配置中心的相关文章

springcloud应用配置中心config的安全设置

springcloud应用配置中心config的安全设置 在springcloud应用开发中,为了方便在线管理我们的配置文件,通常会配一个配置中心config-server,这里托管着应用的一些配置文件,这些配置文件中配置着我们很多的账号信息:如mysql.redis.mongodb.rabbitmq等等的账号和密码.牵扯到账号信息,想必我们要保证如何保证其安全性. 1.保证容器文件访问的安全性,即保证所有的网络资源请求都需要登录 通过springboot配置属性之security,配置secu

SpringCloud之配置中心Config

commons 工程commons 工程 - POM 文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://mav

十九、springcloud(五)配置中心本地示例和refresh

1.创建spring-cloud-houge-config子项目,测试需要的项目入下 2.添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId></dependency> 3.配置文件 aoolication.properties spring.applicati

SpringCloud服务配置中心

SpringCloud Config简介 Spring Cloud Config 是 Spring Cloud 团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分.其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息.加密 / 解密信息等访问接口:而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获

springcloud分布式配置中心

什么是配置中心 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server,二是config client. 创建git 并添加一个properties类型的文件 创建springcloud_git

springcloud config配置中心

配置中心简介 config server 可以从本地或git仓库里读取配置,配置可以放置在一个module里进行管理. 配置高可用config server 把config-server 配置到eureka-server服务里统一管理,可以把config-server配置成集群: 新建config server 模块 a)引入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifact

物联网架构成长之路(51)-Nacos微服务配置中心、服务注册服务发现

0.前言 之前练习微服务是用Eureka,最近发现BladeX是用的Nacos,发现Nacos还比较简单实用.所以联系一下这个,为物联网V2版本积累经验. 1. 下载.安装.启动 下载Nacos 1 https://github.com/alibaba/nacos/releases 2 https://nacos.io/zh-cn/docs/quick-start.html 解压启动 访问http://127.0.0.1:8848/nacos/index.html 默认帐号密码 nacos/na

springcloud(八):配置中心服务化和高可用

在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息.这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,server端改变IP地址的时候,客户端也需要修改配置,不符合springcloud服务治理的理念.springcloud提供了这样的解决方案,我们只需要将server端当做一个服务注册到eureka中,client端去eureka中去获取配置中心server端的服务既可. 这篇文章我们基于配置中心git版本

业余草 SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)(Finchley版本)

在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud config 组件中,分两个角色,一是config server