资讯专栏INFORMATION COLUMN

spring cloud consul config小demo遇到的问题

leon / 1311人阅读

摘要:最近公司想让我看看微服务正好我也想看看新东西,天天解决业务问题。。。当时我有点懵逼,说好的很好操作的呢没办法,我只有去百度了哈,看了很多文章,基本所有文章说的都是差不太多,但是这个差不太多又都没有说清楚到底怎么玩。。。

最近公司想让我看看微服务

正好我也想看看新东西,天天解决业务问题。。。太没有激情了。。。而且我们大多应用都还是springmvcspringboot的应用都很少,只有几个,唉,我也是深陷业务问题中

Spring Cloud也算是一个全家桶吧,里面东西也多,不过从感觉开箱即用的原则来看,用起来也比较顺手,demo也都很好搭建,
从开始的网关+服务的着手,网关我采用的Zuul,服务治理采用的eureka,后面想用spring cloud config作为配置中心,但是还要自己搭一个server很是麻烦。。。我也懒。。。无意听同事说,其实全家桶里服务治理可以用spring cloud consul,而consul就自带一个配置功能,于是我去了解了spring cloud consul config
spring cloud consul config本身依赖spring cloud consulagent server,所以只要agent server启动了,其实就相当于有了一个server来做配置,我满心欢喜的把服务治理eureka改为spring cloud consul,嗖嗖两下,spring cloud consul也配置好了
命令行里执行了,启动测试模式的agent server

consul agent -dev

打开localhost:8500, 很明显有了一个类似配置中心的菜单

点开进去啥也没有。。。只有右边一个创建按钮

也没灰心,我先是去官网介绍看了看 官网链接描述

我承认我英语是差了。。。看了半天,我真是没看明白怎么使用。。。当时我有点懵逼,说好的很好操作的呢
没办法,我只有去百度了哈,看了很多文章,基本所有文章说的都是差不太多,但是这个差不太多又都没有说清楚到底怎么玩。。。
好吧,这个时候我有点承认我自己理解能力有点问题了,心想既然大家都没有说清楚,估计应该就是很容易理解,所以大家心照不宣,我又反复读了哈官方的描述,并且找了springcloud.cc里的中文说明文档,还是没看太懂。。。

当时我真的觉得有点懵了。。。心想今天算了还是不想这个,明天再想,于是我去把demo的网关换成了spring cloud gateway,这个基本没有半个小时就搞定了,还是比较简单的

第二天也就是今天,我再次来看了哈文档,百度的几篇文章除了说明了一点,要加一个配置文件bootstrap.yml,这里面要去指定一些spring cloud consul config的一些配置,并且意思感觉是application.yml里的配置都可以不用写了,完全维护在spring cloud consul config里,但是spring cloud consul config到底在哪,我还是无法把需要配置的属性,application.ymlconsul agent里刚一片空白的配置页面,这三者联系起来

终于无意中,我发现有一篇文章的一句话让我警醒了。。。他不是像其他文章说一些貌似大家都懂的话,而是非常郑重了说了一句

感觉这难道也是一个理解能力和我差不多,但是比我强的人么。。。他这么一句让我明白,确实官网说的也不太明白,最后那句体会一下,我再去反复看了文章,和自己试验。。。

终于懂了。。。

懂了之后再回过头来看,spring cloud consul config还是真的真的非常简单的。。。其实就是想要用spring cloud consul config,你要和它的一些约定或者说它的规范匹配起就完事了,剩下就跟普通的配置文件一样了,接下来我用我自己的理解来说明哈spring cloud consul config怎么使用,当然前提你对于服务治理consul有点点了解哈

spring cloud consul config其实就是一个服务的配置中心,配置统一管理的地方,你哪个服务需要这个配置中心,你就在那个服务里加上依赖


    org.springframework.cloud
    spring-cloud-starter-consul-config

之后在该服务的resources目录下新增一个bootstrap.yml文件,里面加上这些就够了

spring:
  cloud:
    consul:
      config:
        format: yaml
        default-context: gateway

format默认是key_value的形式,但是我现在很喜欢用yaml形式的配置文件,default-context根据你的应用取吧,类似与spring.application.name属性一样,区分服务的

完事之后,在consul agent刚那个页面里创建一个目录,对,是目录,目录名一定要像这样config/gateway/data

也就是configdata目录都是默认值,你没有配置的时候,就不用管,但是你必须这么写,中间那个gateway就是刚那个 default-context,这样consul agent页面和bootstrap.xml就映射起来了,接下来你就可以在下面的value里像yaml文件一下写配置了

当然你想改目录的两个默认值,你就可以这么修改了,对应prefixdata-key,把默认值写出来就一眼清楚了

spring:
  cloud:
    consul:
      config:
        format: yaml
        default-context: gateway
        prefix: config
        data-key: data

所以还是简单的,当然还有个问题,要是多个环境的不同配置怎么来的,嘿嘿,这是个关键问题,因为这个处理,让我实在没有想到,一般我们不用配置中心的时候,在工程里配置,可以按照application-test.ymlapplication-prod.yml来区分环境,这个spring cloud consul config也是可以的,不过不是创建config/gateway/data/test,亦或是config/gateway/data/prod这种。。。天真

特么竟然是config/gateway,test/dataconfig/gateway,data/data,没错,你没有看错,服务名和环境中间用逗号分开。。。

而且这个中间分隔符逗号还是支持可配。。。默认是逗号。。。你还可以用属性profile-separator进行修改

spring:
  cloud:
    consul:
      config:
        format: yaml
        default-context: gateway
        prefix: config
        data-key: data
        profile-separator: ","

可能我是一个比较传统的程序猿。。。这种逗号分开的目录命名方式对我来说还是有点冲击的。。。再回过头看官方的文档,也算是有点明白了。。。真的还是我的理解能力太差

总得来说也是怪自己太着急了。。。之前几个开箱即用的把自己搞的浮躁了点。。其实仔细看文档还是能看明白的。。。

最后你可以像平常写配置文件一下,这么根据环境来配置了

总结哈:戒骄戒躁吧。。。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74611.html

相关文章

  • Dubbo Cloud Native 实践与思考

    摘要:可简单地认为它是的扩展,负载均衡自然成为不可或缺的特性。类似的特性在项目也有体现,它是另一种高性能代理的方案,提供服务发现健康和负载均衡。 Dubbo Cloud Native 实践与思考 分享简介 Cloud Native 应用架构随着云技术的发展受到业界特别重视和关注,尤其是 CNCF(Cloud Native Computing Foundation)项目蓬勃发展之际。Dubbo...

    邱勇 评论0 收藏0
  • SpringCloud核心教程 | 第四篇:服务注册与发现 Consul

    摘要:下一篇介绍基于的服务注册与调用。服务提供者工程配置这里服务提供者是使用之前进阶教程第三篇整合连接池以及监控改造而来,这里一样的部分就不再重复说明,下面将说明新增的部分。 Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分...

    Xufc 评论0 收藏0
  • Spring Cloud Consul 之Greenwich版本全攻略

    摘要:在我们的文档中,我们使用来表明就选举和事务的顺序达成一致。提供成员关系,故障检测和事件广播。这是一个允许请求的请求响应机制。这包括服务发现,还包括丰富的运行状况检查,锁定,键值,多数据中心联合,事件系统和。 转载请标明出处: http://blog.csdn.net/forezp/a...本文出自方志朋的博客 什么是Consul Consul是HashiCorp公司推出的开源软件,使...

    qingshanli1988 评论0 收藏0

发表评论

0条评论

leon

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<