博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springcloud demo---config-client
阅读量:6494 次
发布时间:2019-06-24

本文共 2981 字,大约阅读时间需要 9 分钟。

1.创建一个config-server服务

  1.1 bootstrap.yml(优先加载权)

server: port: 8091spring: cloud:  config:   uri: http://localhost:8090/  #config-server的服务地址   profile: dev   label: master application:  name: config-servermanagement: security:  enabled: false

  1.2 依赖

org.springframework.cloud
spring-cloud-starter-config
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-web
      
org.springframework.boot
spring-boot-starter-actuator

  1.3 启动类

package com.transsion;import jdk.nashorn.internal.ir.annotations.Reference;import org.springframework.beans.factory.annotation.Value;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.RequestMapping;@SpringBootApplicationpublic class ConfigClientApplication {    public static void main(String[] args) {        SpringApplication.run(ConfigClientApplication.class, args);    }}

  1.4 增加controller类访问配置文件的数据

    启动项目,访问地址http://localhost:8091/config即可以找到配置文件中对应id的值。为1。

package com.transsion;import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RefreshScopepublic class ClientController {    @Value("${id}") //用于获取在git仓库中的配置文件的属性。    private String id;    @RequestMapping("/config")    public String getConfig() {        return this.id;    }}

  1.5 常见错误:Could not resolve placeholder 

    client的spring.application.name和profile与server一致,并且在配置文件中有该属性(Key)

   1.6配置中心的动态刷新

    a.单个客户端刷新

      1.在config-client工程中增加依赖:spring-boot-starter-actuator
      2. 在需要刷新配置的类上,使用注解:@RefreshScope
      3. 在config-client的配置文件中,加入:management.security.enabled=false
      4.调用http://localhost:8881/refresh接口
      关闭鉴权,这样才能post请求访问 当前项目/refresh 接口的时候更新配置文件,否则需要Authorization头

    b.使用spring cloud bus + rabbitmq 实现多个客户端刷新     

      1.在config-client 和 config-client2中增加依赖:spring-cloud-starter-bus-amqp

      2.安装rabbitmq并运行:https://www.rabbitmq.com/download.html
        执行$RABBITMQ_HOME/sbin/rabbitmq-server来启动rabbitmq,rabbitmq的默认用户和密码都是guest,而默认端口是5672
      3.配置文件:rabbitmq:
        host: localhost
        port: 5672
        username: guest
        password: guest
      4.使用post方式请求任一客户端的/bus/refresh接口,就会更新所有客户端的配置

转载于:https://www.cnblogs.com/rainsakura/p/10407171.html

你可能感兴趣的文章
数据库服务器硬件对性能的影响
查看>>
LVM
查看>>
windows+群辉服务器环境下,搭建git版本管理
查看>>
Boolean类型
查看>>
Ubuntu 修改源
查看>>
php 几个比较实用的函数
查看>>
(译)OpenGL ES2.0 – Iphone开发指引
查看>>
@RestController 与 @RequestMapping
查看>>
黑马程序员.bobo.DAY.1
查看>>
Unity shader 官网文档全方位学习(二)
查看>>
pbrun
查看>>
Java后端工程师学习大纲
查看>>
浏览器加载和渲染网页顺序
查看>>
微服务架构springcloud
查看>>
深入剖析Android系统试读样章
查看>>
测试用例出错重跑--flaky插件
查看>>
yaf的安装
查看>>
比较java与C++的不同
查看>>
Twitter Storm入门
查看>>
使用scikit-learn进行文本分类
查看>>