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. 通过Nginx部署Django

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  2. 基本bash shell命令

    以下列举一些常用的bash shell命令,在使用时方便查找. 访问Linux系统上的手册:man 命令.例:man ps      手册是由分页程序来显示的,可以通过点击 空格,回车,向上和向下箭头 ...

  3. 2018年10月19 手记 - 身为开发者的我de窘境

    从10月1国庆过完节回来,那已经是7号了,之后便开始紧锣密鼓的筹划着接下来11月份的公司组织的对外活动,这边新来的产品对产品或者说对任务很是负责,并且策划了很多的方案,并且乐意站在我们开发的角度上去考 ...

  4. 动态树Link-cut tree(LCT)总结

    动态树是个好玩的东西 LCT题集 预备知识 Splay 树链剖分(好像关系并不大) 动态树(Link-cut tree) 先搬dalao博客 什么是LCT? 动态树是一类要求维护森林的连通性的题的总称 ...

  5. js高级程序设计 笔记 --- 表单

    一,基础知识 在html中,表单是form元素,而在js中,表单对应的是HTMLFormElement类型,继承自HTMLElement,其独特的属性和方法有(常见): action:接收请求的URL ...

  6. 初级算法49题 — LeetCode(20181122 - )

    Array: Single Number class Solution { public int singleNumber(int[] nums) { if (nums == null || nums ...

  7. HTML学习-01

    1.标签描述了基本的链接地址/链接目标,该标签作为HTML文档中所有的链接标签的默认链接. 2.如果<head>里面设置了base,那么后面的img图片需要添加的相对路径. 3.不能使用工 ...

  8. jieba和文本词频统计

    ---恢复内容开始--- 一.结巴中文分词涉及到的算法包括: (1) 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG): (2) 采用了动态规划查找最大 ...

  9. 1、The Fctory Pattern(工厂模式:解决对象创建问题)

    The Fctory Pattern  处理对象创建,客户端可以申请一个对象而不用知道对象被那个class创建.可以方便地解耦对象的使用和创建,有两种实现,工厂方法和抽象工厂. Method(工厂方法 ...

  10. Windows操作系统的发展简介

    一.简介    Microsoft Windows,是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS模拟环境,后续的系统版本由于微软不断的更新升级,不但易用, ...