spring cloud: 使用consul来替换config server

上一篇提到了,eureka 2.x官方停止更新后,可以用consul来替代,如果采用consul的话,其实config server也没必要继续使用了,consul自带kv存储,完全可以取代config server的活儿。

步骤如下:

一、先添加jar依赖

//    compile 'org.springframework.cloud:spring-cloud-starter-config'
    compile 'org.springframework.cloud:spring-cloud-starter-consul-config'  

 之前config server的依赖去掉,换成consul-config的依赖即可。

二、修改bootstrap.yml文件

 1 spring:
 2   ...
 3   cloud:
 4     consul:
 5       host: 127.0.0.1
 6       port: 8500
 7       discovery:
 8         tags: version=1.0,author=yjmyzz
 9         healthCheckPath: /info.json
10         healthCheckInterval: 5s
11         instanceId: ${spring.application.name}:${spring.cloud.client.ipAddress}
12         enabled: true
13       config:
14         enabled: true
15         format: YAML
16         prefix: config
17         defaultContext: application
18         profileSeparator: ','
19         data-key: data
20 #    config:
21 #      label: dev
22 #      discovery:
23 #        enabled: true
24 #        service-id: my-config-server
25 #      fail-fast: true
26 #      retry:
27 #        max-interval: 1500
28 #        max-attempts: 5
29 #        multiplier: 1.2

关键是13-19行,解释一下:

15行 format:YAML 表示consul中的key-value中的value内容,采用YAML格式

16行 prefix: config 表示consul用于存储配置的文件夹根目录名为config

17行 defaultContext: application 表示配置文件对应的应用名称(eg: 你的服务如果打算取名为myApp,则这里的application就要换成myApp)

18行 profileSeparator: ',' 表示如果有多个profile(eg: 开发环境dev,测试环境test...) ,则key名中的profile与defaultContext之间,用什么分隔符来表示(这里有点费解,后面还会详细解释)

19行 data-key: data 表示最后一层节点的key值名称,一般默认为data

三、consul中创建kv配置节点

很多文章,包括官方文档这一步都讲得不明不白,关键是 节点名称的命名规则,要与bootstrap.yml中的配置一样,比如我们要创建一个test环境的配置,key名可以取为:

config/application,test/data

这里每一个部分,都要与上一步bootstrap.yml中的一致,上图中5个剪头所指,大家结合上一步中15-19行的解释体会一下。

然后Value值的部分,把配置内容按yml格式填进去就行:

tips: 平时开发时,一般使用consul dev模式,开发模式下kv存储不会持久化存储,全在内存中(重启consul就丢了!),所以一般建议yml配置文件内容,在项目中单独存一个文件,启动调试时,直接把配置文件内容贴到Value框里即可。

好了,现在你可以试着启动下,顺利的话,应该就可以了,是不是很简单,关键还省掉了config server的部署,帮公司省了机器,别忘了让领导给你加绩效哦^_^ 

参考文档:

1、spring cloud consul 中文文档

2、spring cloud consul 官方文档(英文)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏移动开发的那些事儿

IM二分法智能心跳策略

19030
来自专栏微服务生态

缓存穿透、缓存并发、热点缓存之最佳招式

在之前的一篇缓存穿透、缓存并发、缓存失效之思路变迁文章中介绍了关于缓存穿透、并发的一些常用思路,但是个人感觉文章中没有明确一些思路的使用场景,本文继续将继续深化...

9420
来自专栏友弟技术工作室

如何在CLI上管理密码

基于密码的认证在网络盛行的今天,你可能需要或者已经使用了某种密码管理工具来跟踪管理你正在使用的所有密码。有各种各样的在线或离线服务或者软件工具用于完成此类事情,...

531110
来自专栏大内老A

谈谈分布式事务之二:基于DTC的分布式事务管理模型[上篇]

通过上一篇的介绍,我们知道了SOA真正需要的是一个能够协调服务操作直接(通过服务自身访问的资源)或者间接(通过被调用服务访问的资源)访问的所有资源的分布式事务管...

19070
来自专栏IT 指南者专栏

基于 Hexo + GitHub Pages 搭建个人博客(三)

打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式:

49940
来自专栏技术博文

linux ss命令使用详解

ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够...

51860
来自专栏PhpZendo

深入浅出依赖注入

或许您已经在项目中已经使用过「依赖注入」,只不过由于某些原因,致使您对它的印象不是特别深刻。

10710
来自专栏沈唁志

宝塔面板Mysql 5.6版本无法正常启动的解决方法

朋友找我的时候说的是 Mysql 启动不了,看他发的截图是宝塔面板,就要来了面板信息去看了一下

2.3K20
来自专栏散尽浮华

Netdata---Linux系统性能实时监控平台部署记录

通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况。下面就介绍下一款Linux性能实时监测工具-Netda...

95780
来自专栏京东技术

如何实现靠谱的分布式锁?(附SharkLock的设计选择)

当前使用较多的分布式锁方案主要基于 Redis、ZooKeeper 提供的功能特性加以封装来实现的,下面我们会简要分析下这两种锁方案的处理流程以及它们各自的问题...

17930

扫码关注云+社区

领取腾讯云代金券