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 官方文档(英文)

原文地址:https://www.cnblogs.com/yjmyzz/p/replace-config-server-with-consul.html

时间: 2024-08-29 21:49:41

spring cloud: 使用consul来替换config server的相关文章

spring cloud: 使用consul来替换eureka

eureka官方已经正式宣布:自2.0起不再维护该项目,并在github 项目wiki上放出了一段吓唬人的话: 大意就是:从2.x起,官方不会继续开发了,如果需要使用2.x,风险自负.但其实我觉得问题并不大,eureka目前的功能已经非常稳定,就算不升级,服务注册/发现这些功能已经够用. 如果想寻找替代方案的话,建议采用功能更为丰富的consul,除了服务注册.发现,consul还提供了k-v存储等其它功能,consul的官网针对其它同类软件也做了详细比较,详见 consul vs other

Spring Cloud学习--配置中心(Config)

Spring Cloud学习--配置中心(Config) 一 Spring Cloud Config简介 二 编写 Config Server 三 编写Config Client 四 使用refresh端点手动刷新配置 五 Spring Config Server与Eurelka配合使用 六 Config Server的高可用 一. Spring Cloud Config简介 微服务要实现集中管理微服务配置.不同环境不同配置.运行期间也可动态调整.配置修改后可以自动更新的需求,Spring Cl

3、Spring Cloud - Eureka(高可用Eureka Server集群)

在实际的项目中,可能有几十个或者几百个的微服务实例,这时 Eureka Server 承担了非 常高的负载.由于 Eureka Server 在微服务架构中有着举足重轻的作用,所以需要对 Eureka Server 进行高可用集群 1.此时需要两个服务 eureka-server的配置文件 server.port=8761 spring.application.name=eureka8761 eureka.client.fetch-registry=false eureka.client.reg

Spring Cloud Eureka 总结

写在前面的话(给自己) 为了巩固自身学习,从今天(2019.01.08),每天晚上开始总结SpringCloud的相关学习,用于自我勉励,自我积累与人生总结. 总结2018年的我,心态较之从前浮躁,杂念多了,没有用心,更没能好好的反思自己:按照自己单身的情况,平时我本应该有更多的时间去学习,去提高,去真正的充实自己. 学习本身就并非易事,无论是为了生活还是理想,还是一种生活状态,最重要的是要用心,要真正的去理解,更要沉得住气,静得下心. 选择了IT这一行,应该有苦修的觉悟,任何技术只停留在简单会

Spring Cloud 微服务中搭建 OAuth2.0 认证授权服务

在使用 Spring Cloud 体系来构建微服务的过程中,用户请求是通过网关(ZUUL 或 Spring APIGateway)以 HTTP 协议来传输信息,API 网关将自己注册为 Eureka 服务治理下的应用,同时也从 Eureka 服务中获取所有其他微服务的实例信息.搭建 OAuth2 认证授权服务,并不是给每个微服务调用,而是通过 API 网关进行统一调用来对网关后的微服务做前置过滤,所有的请求都必须先通过 API 网关,API 网关在进行路由转发之前对该请求进行前置校验,实现对微服

springcloud(五):Spring Cloud 配置中心的基本用法

Spring Cloud 配置中心的基本用法 1. 概述 本文介绍了Spring Cloud的配置中心,介绍配置中心的如何配置服务端及配置参数,也介绍客户端如何和配置中心交互和配置参数说明. 配置中心服务器部分内容包括:服务创建,git,svn,native后端的配置,各种url访问 配置中心客户端部分内容包括:访问配置.failfast,重试 2. Spring Cloud Config的服务端 2.1. 简述 我们在开发大的系统时,由于服务较多,相同的配置(如数据库信息.缓存.开关量等)会出

Spring Cloud 与 Dubbo 区别

  Dubbo Spring Cloud 服务注册中心 Zookeeper Spring Cloud Netflix Eureka 服务调用方式 RPC REST API 服务监控 Dubbo-monitor Spring Boot Admin 断路器 不完善 Spring Cloud Netflix Hystrix 服务网关 无 Spring Cloud Netflix Zuul 分布式配置 无 Spring Cloud Config 服务跟踪 无 Spring Cloud Sleuth 消息

微服务,spring boot,spring cloud

什么是微服务 将复杂的业务系统根据业务拆分成多个子系统协同完成主体业务. 微服务的九大特性(根据Martin Fowler 在 Microservices 中的归纳) 服务组件化(灵活拆装,低耦合) 按业务组织团队(分工驱动团队的技术知识储备) 做产品的态度,团队对整个生命周期负责,业务进行拆分后,每个模块的的业务小而精,更容易做纵向扩展,把小功能做精 智能端点和哑管道,组件间从原先的方法调用的交互方式变为基于粗粒度的通信协议(Http的RESTful API,HSF,RabbitMQ) 去中心

SPRING CLOUD微服务DEMO-上篇

目录 1. 微服务架构 2. 远程调用方式 2.1 RPC/RMI 2.2 Http 2.3 如何选择 3. Http客户端工具 3.1 RestTemplate 4. Spring Boot 搭建项目 5. Spring Cloud简介 6. 微服务场景模拟 7. Eureka注册中心 7.1 简介 7.2 原理图 7.3 搭建注册中心 7.4 将user-service注册到eureka 7.5 user-consume从eureka中获取服务 7.6 eureka集群 7.7 Eureka