Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新
1.环境介绍
这一篇文章中我们终于没有新工程要建了,主要是对现有的工程进行改造。在传统的开发中,我们可能会把用户、机构、资源、权限这些比较通用的东西抽取出来做一个底层平台,但是在spring cloud的世界里,所有的都是服务;所有的服务都可以集群部署。
2.配置中心服务化
2.1 改造mirco-service-spring-config
因为我们之前在git上上传的配置目录也叫mirco-service-config,所以我把之前的配置中心工程改为了mirco-service-spring-config。
- 为“mirco-service-spring-config”工程的pom文件中加入
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
- 配置文件中加入
eureka:
client:
service-url:
defaultZone: http://localhost:9001/eureka/
- 为启动文件加入@EnableDiscoveryClient注解
2.2 改造mirco-service-provider、mirco-service-consumer
主要是配置文件的改动,改动后的bootstrap.yml配置文件如下
spring:
cloud:
config:
discovery:
service-id: service-config-server #新加入的配置
enabled: true #打开配置文件从注册中心获取
#uri: http://localhost:7001/
profile: test
name: provider
label: master
eureka:
client:
service-url:
defaultZone: http://localhost:9001/eureka/
因为这里面要从注册中心找到配置中心,再从配置中心找配置文件,而bootstrap.yml文件启动的时间比较早,所以这里一定要加入注册中心的地址。用同样的方法改造mirco-service-consumer。至此,改造完成。
3. 配置中心实时刷新
我们这里面以mirco-service-consumer为例。
3.1 加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
这里的actuator之前在第一章的视频里面讲过,这是一个用来做应用健康检查的组件,同时也可以做应用配置的刷新。
3.2 加入配置
- 为了方便演示,我们就直接在bootstrap.yml文件中加入如下配置:
management:
endpoints:
web:
exposure:
include: "*"
这个配置的意思是放开actuator相关的目录限制,没放开之前http://localhost:8002/actuator/env是看不到东西的,能看出说明配置成功。
- 在MyFristConsumerController上加入@RefreshScope注解,只要类上加了@RefreshScope注解,并且类中有配置文件相关的变量,在应用配置刷新时,都会被更新。
3.3 测试
- 访问http://localhost:8002/consumerHelloWorld?name=rose,看到我们的port是8002。
- 修改github上的consumer.yml,将port改为8003。
- 使用"curl -X POST http://localhost:8002/actuator/refresh"刷新配置。
- 重复第一个步骤,可以看到port变为8003。
- 由于我们这里改的是应用服务的端口,而我们刷新后,在应用中的参数配置确实变了,但访问端口还是8002,说明这个刷新配置也是有局限的,已启动的应用实际访问端口不会变。但下次启动时会变。
4.一点点重要的事情
- 教程中源代码地址github-Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新
- 教程对应的视频地址爱奇艺-Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新
Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新的更多相关文章
- Spring Cloud实战之初级入门(四)— 利用Hystrix实现服务熔断与服务监控
目录 1.环境介绍 2.服务监控 2.1 加入依赖 2.2 修改配置文件 2.3 修改启动文件 2.4 监控服务 2.5 小结 3. 利用hystrix实现消费服务熔断 3.1 加入服务熔断 3.2 ...
- Spring Cloud实战之初级入门(六)— 服务网关zuul
目录 1.环境介绍 2.api网关服务 2.1 创建工程 2.3 api网关中使用token机制 2.4 测试 2.5 小结 3.一点点重要的事情 1.环境介绍 好了,不知不觉中我们已经来到了最后一篇 ...
- Spring Cloud实战微服务入门
1.spring cloud是什么? 是一个快速构建分布式系统的工具集,构建于Spring Boot之上 2.spring cloud 的特点 约定优于配置 开箱即用.快速启动 适用于各种环境 轻量级 ...
- spring cloud实战与思考(五) JWT之携带敏感信息
需求: 需要将一些敏感信息保存在JWT中,以便提高业务处理效率. 众所周知JWT协议RFC7519使用Base64Url对Header和Payload的Json字符串进行编解码.A JWT is re ...
- SpringCloud实战之初级入门(三)— spring cloud config搭建git配置中心
目录 1.环境介绍 2.配置中心 2.1 创建工程 2.2 修改配置文件 2.3 在github中加入配置文件 2.3 修改启动文件 3. 访问配置中心 1.环境介绍 上一篇文章中,我们介绍了如何利用 ...
- SpringCloud实战之初级入门(二)— 服务注册与服务调用
目录 1.环境介绍 2.服务提供 2.1 创建工程 2.2 修改配置文件 2.3 修改启动文件 2.5 亲测注意事项 3.服务调用 3.1 创建工程 3.2 修改配置文件 3.3 修改启动文件 3.4 ...
- 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战
一.PassJava 项目简介 PassJava-Learning 项目是 PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款 Java 面试刷题 的 ...
- [Spring Cloud实战 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权
一. 前言 本篇实战案例基于 youlai-mall 项目.项目使用的是当前主流和最新版本的技术和解决方案,自己不会太多华丽的言辞去描述,只希望能勾起大家对编程的一点喜欢.所以有兴趣的朋友可以进入 g ...
- Spring Cloud实战 | 最终篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案
一. 前言 在上一篇文章介绍 youlai-mall 项目中,通过整合Spring Cloud Gateway.Spring Security OAuth2.JWT等技术实现了微服务下统一认证授权平台 ...
随机推荐
- 通过Nginx部署Django
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...
- 基本bash shell命令
以下列举一些常用的bash shell命令,在使用时方便查找. 访问Linux系统上的手册:man 命令.例:man ps 手册是由分页程序来显示的,可以通过点击 空格,回车,向上和向下箭头 ...
- 2018年10月19 手记 - 身为开发者的我de窘境
从10月1国庆过完节回来,那已经是7号了,之后便开始紧锣密鼓的筹划着接下来11月份的公司组织的对外活动,这边新来的产品对产品或者说对任务很是负责,并且策划了很多的方案,并且乐意站在我们开发的角度上去考 ...
- 动态树Link-cut tree(LCT)总结
动态树是个好玩的东西 LCT题集 预备知识 Splay 树链剖分(好像关系并不大) 动态树(Link-cut tree) 先搬dalao博客 什么是LCT? 动态树是一类要求维护森林的连通性的题的总称 ...
- js高级程序设计 笔记 --- 表单
一,基础知识 在html中,表单是form元素,而在js中,表单对应的是HTMLFormElement类型,继承自HTMLElement,其独特的属性和方法有(常见): action:接收请求的URL ...
- 初级算法49题 — LeetCode(20181122 - )
Array: Single Number class Solution { public int singleNumber(int[] nums) { if (nums == null || nums ...
- HTML学习-01
1.标签描述了基本的链接地址/链接目标,该标签作为HTML文档中所有的链接标签的默认链接. 2.如果<head>里面设置了base,那么后面的img图片需要添加的相对路径. 3.不能使用工 ...
- jieba和文本词频统计
---恢复内容开始--- 一.结巴中文分词涉及到的算法包括: (1) 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG): (2) 采用了动态规划查找最大 ...
- 1、The Fctory Pattern(工厂模式:解决对象创建问题)
The Fctory Pattern 处理对象创建,客户端可以申请一个对象而不用知道对象被那个class创建.可以方便地解耦对象的使用和创建,有两种实现,工厂方法和抽象工厂. Method(工厂方法 ...
- Windows操作系统的发展简介
一.简介 Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用, ...