分布式配置中心(Native - Config)
本章只讲 Spring Cloud 本地配置方式,可以很方便的高可用集群,且存在良好通讯,不用担心云服务器与内网之间GIT带来的不便,GIT(网上GIT教程一搜一大把了….)
- 快速开始
Spring Cloud Config为分布式系统中的外部配置,提供了服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器映射的概念与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何以任何语言运行的应用程序一起使用。随着应用程序通过从开发人员到测试和生产的部署流程,您可以管理这些环境之间的配置,并确定应用程序具有迁移时需要运行的一切。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可用于管理内容的各种工具。可以轻松添加替代实现,并使用Spring配置将其插入
官方文档:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#_spring_cloud_config
- 服务架构图
服务架构图
画图工具:https://www.processon.com/
- 准备工作
1.创建 battcn-config-server
和 battcn-config-client
,如果已经从第一章看到这里的朋友们应该都知道pom.xml的一些基本配置了,本节开始只贴关键部分代码,完整的直接看GIT 就行了,不然每次都导致内容太多让人没有看的欲望了…
- battcn-config-server
2.导入 config-server 包,目前只需要这一个就够了
1 |
<dependencies> |
3.创建启动APP.java程序,添加 @EnableConfigServer
注解即可
1 |
@SpringBootApplication |
4.application.yml
1 |
server: |
5.最后创建一个 config-server-order-default.yml
这个就是给到其它项目使用的,使用方式也极其简单
1 |
order: |
- 测试一把
http请求地址和资源文件映射如下:
- /{application}-{profile}.yml
- /{label}/{application}-{profile}.yml
- /{application}-{profile}.properties
- /{label}/{application}-{profile}.properties
- /{application}/{profile}[/{label}]
其中application
是在常规Spring Boot应用程序中注入spring.cloud.config.name
的 SpringApplication(即通常是”application”),application
是活动配置文件(或逗号分隔的属性列表),label
是可选的git标签(默认为master
)。
所以捏,我们这快 地址应该写成 http://localhost:9000/config-server/order-default 其中 config-server
就是我们配置的spring.cloud.config.name
也就是 {application}
然后 order-default 就是我们的 {profile}
结果:{"name":"config-server","profiles":["order-default"],"label":null,"version":null,"state":null,"propertySources":[{"name":"classpath:/config-server-order-default.yml","source":{"order.name":"My Name's Order Service,Are you Afraid?"}}]}
表示OK了,服务端配置完毕,接下来配置需要调用的客户端
- battcn-config-client
1.导入以下包,一个是consul的服务发现包,如果不知道的请参考 一起来学SpringCloud之-注册中心(Eureka/Consul),第二个就是Client需要依赖的包,第三个是心跳检测需要依赖的,cloud中很多都会使用到,有兴趣的可以百度了解
1 |
<dependencies> |
2.我们 battcn-config-client
是没有配置 order.name
属性的,因此是从 config-server
中读取
1 |
@SpringBootApplication |
3.创建 bootstrap.yml
,不能是application.yml
具体原因请看注意事项
1 |
server: |
- 注意事项
创建
bootstrap.yml
,这里需要注意一下的是,SpringCloud Config是不认application.yml
的配置,这也是Cloud官方有说明的,不然配置的 uri属性是无效的
参考链接:http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#_the_bootstrap_application_context 因此有的配置只能通过 bootstrap.yml
,否则就会被覆盖(附源码)
源码
- 测试一把
启动:consul agent -dev
启动consul
启动:battcn-config-server
和 battcn-config-client
1 |
client ====>>> My Name's Order Service,Are you Afraid? #表示成功 |
分布式配置中心(Native - Config)的更多相关文章
- SpringCloud 进阶之分布式配置中心(SpringCloud Config)
1. SpringCloud Config SpringCLoud Config 为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用 的所有环境提供了一个中心化的外部配置; ...
- Spring-cloud微服务实战【九】:分布式配置中心config
回忆一下,在前面的文章中,我们使用了spring cloud eureka/ribbon/feign/hystrix/zuul搭建了一个完整的微服务系统,不管是队内还是对外都已经比较完善了,那我们 ...
- springcloud 高可用分布式配置中心
SpringCloud教程七:高可用的分布式配置中心(SpringCloud Config) 当服务有很多 都要从服务中心获取配置时 这是可以将服务中心分布式处理 是系统具备在集群下的大数据处理 主要 ...
- springcloud学习之路: (五) springcloud集成SpringCloudConfig分布式配置中心
SpringCloud全家桶中的分布式配置中心SpringCloudConfig, 它使用git来管理配置文件, 在修改配置文件后只需要调用一个接口就可以让新配置生效, 非常方便. SpringClo ...
- SpringCloud(6)分布式配置中心Spring Cloud Config
1.Spring Cloud Config 简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组 ...
- SpringCloud教程 | 第六篇: 分布式配置中心(Spring Cloud Config)
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...
- springCloud学习-高可用的分布式配置中心(Spring Cloud Config)
1.简介 高可用的分布式配置中心,即将配置中心做成一个微服务,将其集群化,从而达到高可用.config-server和config-client向eureka-server注册,且将config-se ...
- springCloud学习-分布式配置中心(Spring Cloud Config)
1.简介 Spring Cloud Config :分布式配置中心,方便服务配置文件统一管理,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中.在spring cloud co ...
- 一起来学Spring Cloud | 第七章:分布式配置中心(Spring Cloud Config)
上一章节,我们讲解了服务网关zuul,本章节我们从git和本地两种存储配置信息的方式来讲解springcloud的分布式配置中心-Spring Cloud Config. 一.Spring Cloud ...
- Spring Cloud Config 分布式配置中心使用教程
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...
随机推荐
- Java实现 LeetCode 743 网络延迟时间(Dijkstra经典例题)
743. 网络延迟时间 有 N 个网络节点,标记为 1 到 N. 给定一个列表 times,表示信号经过有向边的传递时间. times[i] = (u, v, w),其中 u 是源节点,v 是目标节点 ...
- Java实现 LeetCode 145 二叉树的后序遍历
145. 二叉树的后序遍历 给定一个二叉树,返回它的 后序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成 ...
- Java实现 蓝桥杯VIP 算法提高 洗牌
算法提高 洗牌 时间限制:1.0s 内存限制:256.0MB 问题描述 小弱T在闲暇的时候会和室友打扑克,输的人就要负责洗牌.虽然小弱T不怎么会洗牌,但是他却总是输. 渐渐地小弱T发现了一个规律:只要 ...
- java实现自行车行程
** 自行车行程** 计算行程 低碳生活,有氧运动.骑自行车出行是个好主意.小明为自己的自行车装了个计数器,可以计算出轮子转动的圈数.在一次骑车旅行中,出发时计算器的示数为begin,到达目的地时的示 ...
- LocalDateTime在项目中的使用(LocalDateTime对接前端通过时间戳互转、LocalDateTime对接数据库)
目录 1. 博客编写背景 2. LocalDateTime 前端交互 2.1 LocalDateTime 向前端写入时间戳 2.1.1 fastJson 默认的写入格式 2.1.2 更改 fastJs ...
- 温故知新-Mysql锁&事务&MVCC
文章目录 锁概述 锁分类 MyISAM 表锁 InnoDB 行锁 事务及其ACID属性 InnoDB 的行锁模式 注意 MVCC InnoDB 中的 MVCC 参考 你的鼓励也是我创作的动力 Post ...
- Python 在线免费批量美颜,妈妈再也不用担心我 P 图两小时啦
引言 首先我承认自己标题党了,我就想提升点阅读量我容易么我,前几天的篇纯技术文阅读量都扯着蛋了. 毕竟阅读量太低实在是没有写下去的动力,我只能用点小手段偶尔提升下阅读量. 这篇文章我转换下套路,先放结 ...
- Python大神编程常用4大工具,你用过几个?
摘要:Python是一种跨平台的编程语言,能够在所有主要的操作系统上,运行你编写的任何Python程序.今天介绍几款常见的工具:Python自带的解释器.文本编辑器(Geany.Sublime Tex ...
- @codechef - JADUGAR2@ Chef and Same Old Recurrence 2
目录 @description@ @solution@ @accepted code@ @details@ @description@ 定义 dp 序列: \[dp(1) = K\\ dp(n) = ...
- 一张图搞懂Ubuntu安装时姓名、计算机名、用户名
安装Ubuntu时会要求填写如下图的信息: 感谢:苏守坤 注意:上面的博客讲述了各自的具体含义,本篇博客只是说明这些名称在系统安装后会出现的位置.