前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Consul微服务的配置中心体验篇

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

作者头像
冷冷
发布2018-03-30 10:42:06
3K0
发布2018-03-30 10:42:06
举报
文章被收录于专栏:冷冷冷冷

Spring Cloud Consul

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

Consul

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

添加依赖

代码语言:javascript
复制
<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依赖提供了哪些功能?

代码语言:javascript
复制
<!--消息总线,提供配置实时刷新,不再依赖中间件-->
<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

代码语言:javascript
复制
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模式)

代码语言:javascript
复制
-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
image

配置config

image
image

demo

代码语言:javascript
复制
@RestController
public class DemoController {
    @Value("${author}")
    private String author;

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

关于实时刷新配置

代码语言:javascript
复制
spring:
  cloud:
    consul:
      config:
        watch:
          enabled: true

然后应用要开启定时任务

代码语言:javascript
复制
@EnableScheduling

总结

  1. 相较于spring cloud config 的配置中心,使用起来较为麻烦,但是对于实时刷新,这块要优于spring cloud config 的,不依赖于中间件的消息通知,也不会出现服务下线的问题。
  2. 这篇文章主要是入门,更高级的使用Consul Config 结合 Git 来做版本控制,请参考我后边的文章
  3. 关于pig:基于Spring Cloud、oAuth2.0开发基于Vue前后分离的开发平台,支持账号、短信、SSO等多种登录,提供配套视频开发教程
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring Cloud Consul
  • Consul
  • 添加依赖
    • consul-all依赖提供了哪些功能?
      • bootstrap.yml
      • 安装consul
        • 配置config
        • demo
          • 关于实时刷新配置
          • 总结
          相关产品与服务
          消息队列 TDMQ
          消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档