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.一点点重要的事情

Spring Cloud实战之初级入门(五)— 配置中心服务化与配置实时刷新的更多相关文章

  1. Spring Cloud实战之初级入门(四)— 利用Hystrix实现服务熔断与服务监控

    目录 1.环境介绍 2.服务监控 2.1 加入依赖 2.2 修改配置文件 2.3 修改启动文件 2.4 监控服务 2.5 小结 3. 利用hystrix实现消费服务熔断 3.1 加入服务熔断 3.2 ...

  2. Spring Cloud实战之初级入门(六)— 服务网关zuul

    目录 1.环境介绍 2.api网关服务 2.1 创建工程 2.3 api网关中使用token机制 2.4 测试 2.5 小结 3.一点点重要的事情 1.环境介绍 好了,不知不觉中我们已经来到了最后一篇 ...

  3. Spring Cloud实战微服务入门

    1.spring cloud是什么? 是一个快速构建分布式系统的工具集,构建于Spring Boot之上 2.spring cloud 的特点 约定优于配置 开箱即用.快速启动 适用于各种环境 轻量级 ...

  4. spring cloud实战与思考(五) JWT之携带敏感信息

    需求: 需要将一些敏感信息保存在JWT中,以便提高业务处理效率. 众所周知JWT协议RFC7519使用Base64Url对Header和Payload的Json字符串进行编解码.A JWT is re ...

  5. SpringCloud实战之初级入门(三)— spring cloud config搭建git配置中心

    目录 1.环境介绍 2.配置中心 2.1 创建工程 2.2 修改配置文件 2.3 在github中加入配置文件 2.3 修改启动文件 3. 访问配置中心 1.环境介绍 上一篇文章中,我们介绍了如何利用 ...

  6. SpringCloud实战之初级入门(二)— 服务注册与服务调用

    目录 1.环境介绍 2.服务提供 2.1 创建工程 2.2 修改配置文件 2.3 修改启动文件 2.5 亲测注意事项 3.服务调用 3.1 创建工程 3.2 修改配置文件 3.3 修改启动文件 3.4 ...

  7. 5w 字 | 172 图 | 超级赛亚级 Spring Cloud 实战

    一.PassJava 项目简介 PassJava-Learning 项目是 PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. PassJava 是一款 Java 面试刷题 的 ...

  8. [Spring Cloud实战 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权

    一. 前言 本篇实战案例基于 youlai-mall 项目.项目使用的是当前主流和最新版本的技术和解决方案,自己不会太多华丽的言辞去描述,只希望能勾起大家对编程的一点喜欢.所以有兴趣的朋友可以进入 g ...

  9. Spring Cloud实战 | 最终篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案

    一. 前言 在上一篇文章介绍 youlai-mall 项目中,通过整合Spring Cloud Gateway.Spring Security OAuth2.JWT等技术实现了微服务下统一认证授权平台 ...

随机推荐

  1. 安装yum仓库

    1.yum仓库是在系统镜像文件里,所以我们要安装yum仓库要把系统镜像文件添加进来: 2.进行挂载配置,并且要使配置永久生效,要进行配置: 3.接下来要创建yum仓库 配置文件: 总结:以上就是安装y ...

  2. 快速启动工具Rulers 4.1

    Rulers 4.1 Release 360云盘 https://yunpan.cn/cSbq5nx9GVwrJ 访问密码 0532 百度云 http://pan.baidu.com/s/1czCNR ...

  3. spring里面的ioc的理解?

    spring里面的ioc就是控制反转,其实现核心是DI(依赖注入),控制反转不向以前java代码里面,通过new关键字来实现创建对象,这样每段代码之间的耦合度就比较高,为了降低每个小模块之间的耦合度, ...

  4. [bzoj4445] [SCOI2015]小凸想跑步 (半平面交)

    题意:凸包上一个点\(p\),使得\(p\)和点\(0,1\)组成的三角形面积最小 用叉积来求: \(p,i,i+1\)组成的三角形面积为: (\(\times\)为叉积) \((p_p-i)\tim ...

  5. 容器化VS微服务

    1 微服务 1.1 思想 开发人员自己测试.部署和运维自己编写的代码,即自己负责构建生命周期的全部. 1.2 Spring Boot 提供服务化的能力,即把容器.服务所需依赖和服务一起打包成一个jar ...

  6. SPOJ 1811 Longest Common Substring(求两个串的最长公共子串 || 或者n个串)

    http://www.spoj.com/problems/LCS/ 题目:求两个串的最长公共子串 参考:https://www.cnblogs.com/autoint/p/10345276.html: ...

  7. 离线安装eclipse的maven插件包

    离线安装eclipse的maven插件包 1.打开你本地的eclipse根目录,随便新建一个文件夹例如mavenPlugin,把maven离线插件包中两个文件夹复制到这个新建的这个文件夹里边 2.找到 ...

  8. 关于typedef的用法

    参考:http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html https://wenda.so.com/q/1471668835 ...

  9. cucumber & selenium & bddtest

    目录 1.Cucumber介绍 refer link: 2.使用步骤 2.1 引入依赖 2.2新建test.future文件 2.3在resource目录下创建cucumber.bat,执行bat,c ...

  10. Service启动流程

    Service启动流程从整个宏观上来看,它的模型如下 startService启动流程时序图 Activity中使用的startService方法是定义在Context的抽象类中,它的真正实现者是Co ...