文档章节

Consul微服务的配置中心体验篇

冷冷gg
 冷冷gg
发布于 03/14 11:57
字数 628
阅读 1173
收藏 0

Spring Cloud Consul

项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,具有分布式、高可用、高扩展性

Consul

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其他分布式服务注册与发现的方案,Consul的方案更“一站式” ,内置了服务注册与发现框 架、具有以下性质:
● 分布一致性协议实现
● 健康检查
● Key/Value存储
● 多数据中心方案
不再需要依赖其他工具(比如ZooKeeper等)

添加依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-all</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

consul-all依赖提供了哪些功能?

<!--消息总线,提供配置实时刷新,不再依赖中间件-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-bus</artifactId>
</dependency>
<!--consul的配置中心功能-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-config</artifactId>
</dependency>
<!--服务注册和发现功能-->
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

bootstrap.yml

这里要注意是要配置在 bootstrap.yml

spring:
  application:
    name: pig-consul
  cloud:
    consul:
      host: localhost
      port: 8500
      config:
        enabled: true
        format: KEY_VALUE
        watch:
          enabled: true
        prefix: pig-config
  

安装consul

下载: https://www.consul.io/downloads.html
使用:(dev模式,生产建议cluster模式)

-dev表示开发模式运行,使用-client 参数可指定允许客户端使用什么ip去访问,例如-client 127.0.0.1 表示可以使用。  

consul agent -dev -client 127.0.0.1

生产配置参考:
https://www.consul.io/intro/getting-started/join.html
http://127.0.0.1:8500/ui/ 去访问 image

配置config

image

demo

@RestController
public class DemoController {
    @Value("${author}")
    private String author;

    @GetMapping("/demo")
    public String demo() {
        return author;
    }
}

关于实时刷新配置

spring:
  cloud:
    consul:
      config:
        watch:
          enabled: true

然后应用要开启定时任务

@EnableScheduling

总结

  1. 相较于spring cloud config 的配置中心,使用起来较为麻烦,但是对于实时刷新,这块要优于spring cloud config 的,不依赖于中间件的消息通知,也不会出现服务下线的问题。
  2. 这篇文章主要是入门,更高级的使用Consul Config 结合 Git 来做版本控制,请参考我后边的文章
  3. 关于pig:基于Spring Cloud、oAuth2.0开发基于Vue前后分离的开发平台,支持账号、短信、SSO等多种登录,提供配套视频开发教程

© 著作权归作者所有

共有 人打赏支持
冷冷gg
粉丝 432
博文 113
码字总数 52275
作品 1
潍坊
UI设计师
私信 提问
加载中

评论(5)

冷冷gg
冷冷gg

引用来自“如梦技术”的评论

😂把我的研究成果给抢先发了,你的良心不会痛么?
😆 我就是怕春哥教的忘了 。。
如梦技术
如梦技术
😂把我的研究成果给抢先发了,你的良心不会痛么?
我怀疑这个世界是假的
我怀疑这个世界是假的

引用来自“lw_blog”的评论

会集成到pig里面吗?
会。consul + gateway + webflux
我怀疑这个世界是假的
我怀疑这个世界是假的
支持一个!!
lw_blog
lw_blog
会集成到pig里面吗?
【docker&spring cloud】微服务化改造

微服务化改造系列之一:总览 1 写在前面 背景 技术圈流行一句话,凡脱离业务谈架构的,都是耍流氓。作为微服务改造系列的第一篇博客,首先介绍一下实施这次技术改造的背景。 第一,我所在公司...

English0523
01/12
0
0
SpringCloud核心教程 | 第四篇:服务注册与发现 Consul篇

Spring Cloud简介 是一个基于实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理...

星缘1314
08/09
0
0
Spring Cloud自动推送配置到Consul配置中心

是一个集配置管理、服务注册和发现于一体的微服务基础组件,它提供的这些功能我们在微服务开发中都用到了。在实践中,我们发现没有提供在启动时自动加载某一个配置文件到配置中心的功能,于是...

九州暮云
08/29
0
2
winserver的consul部署实践与.net core客户端使用(附demo源码)

前言 随着微服务兴起,服务的管理显得极其重要。都知道微服务就是”拆“,把臃肿的单块应用,拆分成多个轻量级的服务,每个服务可以在短周期内重构、迭代、交付。随着微服务的数量增多,因量...

陈珙
07/25
0
0
跟大家介绍一下关于Spring Cloud Consul

Spring Cloud Consul项目是针对Consul的服务治理实现。Consul是一个分布式高可用的系统,它包含多个组件,但是作为一个整体,在微服务架构中为我们的基础设施提供服务发现和服务配置的工具。...

明理萝
06/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

局域网共享文件读写的实现方式

首先是设置共享目录,支持用户和密码等权限控制 然后我们可以使用Windows资源管理器操作共享目录下的文件 这中间隐藏了资源管理器帮我们建立目录映射和连接的过程,如果设置了用户名和密码,...

夏至如沫
18分钟前
2
0
Elasticsearch安装与配置

一、Docker安装ES 开发模式 可以使用以下命令快速启动Elasticsearch以进行开发或测试: $ docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" docker.ela...

吴伟祥
25分钟前
1
0
移动页面滚动穿透解决方案(荐)

移动页面滚动穿透解决方法目前有多种解决方案,我介绍下几种方案: 解决方案1:阻止冒泡。 //关键代码$(".sliders,.modals").on("touchmove",function(event){    event.preventDefau...

壹峰
25分钟前
0
0
调用infura实现java项目调用智能合约

https://infura.io/dashboard 注册一个帐号 添加一个project 可选择主网或者其他网络,然后复制地址放进pom.xml中 复制智能合约地址复制到pom.xml中 复制任意一个帐号的private key到pom.xml...

八戒八戒八戒
32分钟前
3
0
vue+koa2+token 登录验证

https://segmentfault.com/a/1190000017379244?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly...

Js_Mei
35分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部