简介Spring Cloud 提供了一个部署微服务的平台,包括了微服务中常见的组件:配置中心服务, API网关,断路器,服务注册与发现,分布式追溯,OAuth2,消费者驱动合约等。我们不必先知道每个组件有什么作用,随着教程的深入,我们会逐渐接触到它们。一个分布式服务大体结构见下图(图片来自于:spring.io):

使用Spring Cloud搭建分布式的系统十分简单,我们只需要几行简单的配置就能启动一系列的组件,然后可以在代码中控制、使用和管理这些组件。Spring Cloud使用Spring Boot作为基础框架,可以参考我的上一篇博客介绍如何创建一个Spring Boot项目, Spring Boot 2.0.1 入门教程。本教程将教大家如何配置服务中心服务,并通过web客户端读取配置。
基础环境- JDK 1.8
- Maven 3.3.9
- IntelliJ 2018.1
- Git
Gitee码云
创建 Web Client首先用IntelliJ创建一个Maven项目,pom.xml文件内容如下:
讯享网- 可以为所有的依赖指定统一的版本号,这里的Spring-cloud依赖版本均为Finchley.M9,然后使用指定此版本的仓库。
- 提供了访问配置中心服务的API接口。
添加控制器
新建一个控制器类 , 并添加如下代码:
讯享网
一个简单的控制器,匹配路径,并返回变量的值。这里先不用管 这个注解,等下会用到时再讲。会取来自配置中心服务的配置项,或本地环境变量等等,此处取了配置中心的的值,并给了它一个默认值"本地消息",即如果远程配置中心不可用时,此变量将会用默认值初始化。
添加配置文件
bootstrap.xml
我们需要在web客户端项目完全启动之前去加载配置中心的配置项,所以需要在下创建文件,然后指定此客户端的名字和远程配置中心的uri:
yml相比properties文件更加简洁,不用写很多重复的前缀,上边的内容可以转换为对应的properties:
0基础java spring
讯享网
- 指定了此项目的名字,用来取配置中心相同文件名的配置文件,即配置中心应有一文件名为的配置文件。
- 指定了远程配置中心服务的uri地址,默认为http://localhost:8888
新建一个Maven项目,使用如下pom配置:

即为配置中心服务的核心依赖。
配置Application
新建一个Java类,添加如下代码:
- 使用这一条注解即可把该Maven项目作为配置中心服务启动。
新建Git仓库
配置中心的文件都是基于版本控制的,所以需要在本地新建一个git仓库来保存配置文件。或者也可用公共远程git仓库,github, 码云等。在任意位置(如项目的上级目录)创建一空白文件夹,这里叫做,可以使用任何名字。然后进入此文件夹下,运行
来初始化git仓库,然后新建一个文件,名为,并添加如下内容:
注意此文件名需要和之前在web项目中配置的保持一致。这个文件的内容就是web客户端要获取的message的值。创建完成之后,运行如下git命令提交到本地仓库:
配置git仓库位置
我们需要为配置中心指定上述创建的git仓库地址。在下创建文件,提供如下内容:
此文件指定了配置中心服务的端口号,和保存配置文件的git仓库目录,如果是远程仓库,可以直接指定url地址。到此,配置中心服务创建完成。
测试首先启动配置中心服务,使用spring-boot maven插件:spring-boot:run。启动成功后再启动web客户端,访问,如果看到即配置成功。然后关闭配置中心服务,再重启web客户端,访问,我们就会看到。
动态更新配置
那么每次配置更新后都要重启是不是很麻烦?Spring boot提供了组件,用来进行生产环境的维护,如检查健康信息等。还记得上面的注解吗?使用它我们可以动态的加载配置中心修改后的配置。然后我们还需要在配置中心的添加如下内容用以暴露acurator的终端api。
更新完成后提交的git仓库,然后重启配置中心服务和web客户端。修改message为
然后发送一个空的post请求到
之后刷新页面,即可看到更新后的消息。
总结
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/4722.html