文档章节

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

冷冷gg
 冷冷gg
发布于 03/14 11:57
字数 585
阅读 559
收藏 5
点赞 1
评论 5

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
粉丝 248
博文 106
码字总数 46179
作品 1
潍坊
UI设计师
加载中

评论(5)

冷冷gg
冷冷gg

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

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

引用来自“lw_blog”的评论

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

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

English0523 ⋅ 01/12 ⋅ 0

跟大家介绍一下关于Spring Cloud Consul

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

明理萝 ⋅ 06/13 ⋅ 0

spring-cloud1:服务注册与发现

spring-cloud1:服务注册与发现 www.blogways.net2017-12-172 阅读 spring服务 目 录 1 spring cloud简介 2 微服务架构 3 服务注册与发现 一、spring cloud简介 Spring Cloud是一个基于Sprin...

www.blogways.net ⋅ 2017/12/17 ⋅ 0

程序猿DD/SpringCloud-Learning

Spring Cloud教程 本项目内容为Spring Cloud教程的程序样例。如您觉得该项目对您有用,欢迎点击右上方的Star按钮,给予支持!! 我的博客:http://blog.didispace.com 我的小密圈(深度交流与...

程序猿DD ⋅ 2016/11/03 ⋅ 0

翻译:微服务架构中的服务发现

译者按 还是推荐大家尽量读原文。 服务发现机制并不是什么新东西了,只是随着微服务架构的流行,其变得越来越普遍和重要。本文是一片不错的介绍性文章,对于高手们来说,其中没有太多新鲜的东...

编走编想 ⋅ 2015/10/17 ⋅ 2

一次有趣的思考-微服务平稳发布

今天同一个大牛聊天,聊到微服务的发布这个话题。就以我司微服务架构为例,我们是使用spring cloud来构建的,各微服务之间注册于发现是通过consul组件来完成,各微服务通过心跳同consul保持联...

数齐 ⋅ 2017/09/19 ⋅ 0

服务发现之美:Consul集群搭建

近几年随着Docker容器技术、微服务等架构的兴起,人们开始意识到服务发现的必要性。微服务架构简单来说,是一种以一些微服务来替代开发单个大而全应用的方法, 每一个小服务运行在自己的进程里...

Jx战壕 ⋅ 2017/09/10 ⋅ 0

微服务实战(四):服务发现的可行方案以及实践案例

本系列七篇文章列表如下: 微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行...

CraneH ⋅ 2016/06/30 ⋅ 0

第四篇:服务发现机制

本文出自Service Discovery in a Microservices Architecture,作者 Chris Richardson, 写于2015年5月19日 这是本系列文章的第四篇。 第一篇文章:介绍微服务架构并讨论了微服务架构的优点和...

lmy86263 ⋅ 2017/07/15 ⋅ 0

微服务系统中的服务发现机制_译文分享

为什么要使用服务发现? 我们可以想象一下,当我们需要远程的访问REST API或者Thrift API时,我们必须得知道服务的网络地址(IP Address和port)。传统的应用程序都是运行在固定的物理机器上...

力谱宿云 ⋅ 2016/04/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

【elasticsearch】 随笔 Date datatype

一。时间类型的本质 首先json是没有时间类型的,对于es来说,时间类型的标示可以是下面三种情况 1.一个时间格式的字符串,如:"2014-11-27T08:05:32Z","2015-01-01" or "2015/01/01 12:10:3...

xiaomin0322 ⋅ 14分钟前 ⋅ 0

阿里云资源编排ROS使用教程

阿里云资源编排ROS详细内容: 阿里云资源编排ROS使用教程 资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、...

mcy0425 ⋅ 17分钟前 ⋅ 0

适配器设计模式

1、适配器模式 把一个类的接口变换成客户端所期待的另一种接口 使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 分为类的适配器模式和对象的适配器模式 2、类适配器模式 类的适配...

职业搬砖20年 ⋅ 21分钟前 ⋅ 0

npm操作报错 _stream_writable.js:61

有一天 不知道什么原因(估计和node的版本有关),无论你做什么npm的操作 都会报错/usr/local/lib/node_modules/npm/node_modules/readable-stream/lib/_stream_writable.js:61 这时候只要执...

lilugirl ⋅ 24分钟前 ⋅ 0

Eclipse安装插件的几种方式

Eclipse魅力之一就是支持可扩展的插件,来丰富自身的功能,这种方式也是建立在开源思想之上的。具体使用什么方式去安装插件,要看我们拿到的是什么。 1. 拿到的是一串URL,如http://subclips...

GordonNemo ⋅ 27分钟前 ⋅ 0

div图片叠加

css实现代码如下: <div style="position: relative;"><!--这个层为外面的父层,需设置相对位置样式--> <div style="position: absolute;"><!--子层,需设置绝对位置样式--> <i......

niithub ⋅ 28分钟前 ⋅ 0

作用域slot

如果父组件需要使用子组件中的内容怎么办,比如父组件需要控制子组件的显示 <div id="root"><child><template slot-scope="props"><h1>{{props.item}} <div>编辑</div></h1><......

金于虎 ⋅ 31分钟前 ⋅ 1

HongHu commonservice-eureka 项目构建过程

上一篇我们回顾了关于 spring cloud eureka的相关基础知识,现在我们针对于HongHu cloud的eureka项目做以下构建,整个构建的过程很简单,我会将每一步都构建过程记录下来,希望可以帮助到大家...

明理萝 ⋅ 34分钟前 ⋅ 1

xml和对象的相互转化

@Data//setter和getter方法,toString和equals,hashcode方法@EqualsAndHashCode//代表重写equals和hashcode方法@XmlAccessorType(XmlAccessType.FIELD)public class Classroom {@X......

拐美人 ⋅ 34分钟前 ⋅ 0

tableView cell的高度 分组头部尾部的高度 自适应

@property (nonatomic) CGFloat rowHeight; // default is UITableViewAutomaticDimension@property (nonatomic) CGFloat sectionHeaderHeight; // default is UITableViewA......

娜一片蓝色星海 ⋅ 35分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部