spring cloud 配置中心客户端启动遇到的问题

目录
  • spring cloud 配置中心客户端启动
    • 发现打印的日志是这样的
    • 那就加入web模块吧
    • 加入之后再启动项目
  • spring cloud配置中心客户端配置的坑
    • 1. 出错信息如下
    • 2. 度娘查了下,发现很多人碰到这个坑
    • 解决方法很简单,贴下client的配置如下

spring cloud 配置中心客户端启动

先启动了配置中心,然后启动客户端,

发现打印的日志是这样的

2020-04-29 11:13:02.333  INFO 1856 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:9009/
2020-04-29 11:13:08.121  INFO 1856 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=test-config, profiles=[dev], label=master, version=3eb2b779d066af89af4ba5b7a722d2189a15ffd3, state=null
2020-04-29 11:13:08.122  INFO 1856 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-configClient'}, BootstrapPropertySource {name='bootstrapProperties-https://github.com/kzdw/springCloudConfigCenter.git/test-config.yml (document #1)'}, BootstrapPropertySource {name='bootstrapProperties-https://github.com/kzdw/springCloudConfigCenter.git/test-config.yml (document #0)'}]
2020-04-29 11:13:08.127  INFO 1856 --- [           main] c.z.c.ConfigCloudClientApplication       : The following profiles are active: dev
2020-04-29 11:13:08.408  INFO 1856 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=3bad3006-6836-326e-9ae4-7b60b788ec28
2020-04-29 11:13:08.720  INFO 1856 --- [           main] c.z.c.ConfigCloudClientApplication       : Started ConfigCloudClientApplication in 7.436 seconds (JVM running for 8.236)

从日志上看,已经获取到了配置中心的配置,但是呢,总感觉日志不对,怎么就没有启动的端口呢。

springcloud经常会一个模块包含另外模块,难道web模块没有被 spring-cloud-starter-config 包含?

那就加入web模块吧

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

加入之后再启动项目

2020-04-29 11:20:35.379  INFO 10060 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:9009/
2020-04-29 11:20:36.849  INFO 10060 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Located environment: name=test-config, profiles=[dev], label=master, version=3eb2b779d066af89af4ba5b7a722d2189a15ffd3, state=null
2020-04-29 11:20:36.850  INFO 10060 --- [           main] b.c.PropertySourceBootstrapConfiguration : Located property source: [BootstrapPropertySource {name='bootstrapProperties-configClient'}, BootstrapPropertySource {name='bootstrapProperties-https://github.com/kzdw/springCloudConfigCenter.git/test-config.yml (document #1)'}, BootstrapPropertySource {name='bootstrapProperties-https://github.com/kzdw/springCloudConfigCenter.git/test-config.yml (document #0)'}]
2020-04-29 11:20:36.855  INFO 10060 --- [           main] c.z.c.ConfigCloudClientApplication       : The following profiles are active: dev
2020-04-29 11:20:37.278  INFO 10060 --- [           main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=21eb9db3-9e16-3c20-bd81-2c0ea23b0f12
2020-04-29 11:20:37.566  INFO 10060 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8201 (http)
2020-04-29 11:20:37.574  INFO 10060 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-04-29 11:20:37.574  INFO 10060 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.33]
2020-04-29 11:20:37.684  INFO 10060 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-04-29 11:20:37.684  INFO 10060 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 817 ms
2020-04-29 11:20:37.851  INFO 10060 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-04-29 11:20:38.200  INFO 10060 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8201 (http) with context path ''
2020-04-29 11:20:38.285  INFO 10060 --- [           main] c.z.c.ConfigCloudClientApplication       : Started ConfigCloudClientApplication in 3.87 seconds (JVM running for 4.531)

果然,从配置中心拉取到了配置并成功启动了。

spring cloud配置中心客户端配置的坑

1. 出错信息如下

在启动配置中心的客户端时,报以下错误信息:

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'foo' in value "${foo}"

2. 度娘查了下,发现很多人碰到这个坑

首先我提交到git上到配置文件名称为下面两个文件

cloud-config-dev.properties
cloud-config-test.properties

遵循配置中心配置文件的规则/{application}-{profile}.properties

所以在cloud-config-client端调用的时候,applcation.name应该是cloud-config,然而我在配置的时候,想当然的写成了cloud-config-client,导致出现上面的错误。

解决方法很简单,贴下client的配置如下

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 解决spring-cloud-config 多服务共享公共配置的问题

    问题描述 我们公司的项目是基于SpringCloud开发的微服务,用到了Spring-Cloud-Config作为微服务统一的配置中心,可以将散落在各个服务的配置进行统一配置管理. 虽然配置中心将各个应用的配置文件进行了统一管理, 但是涉及到的一些公共配置,比如数据库连接,redis连接,ftp连接等,依然还散落在各个应用的配置文件中,并没有抽取,我们需要根据环境的不同,而动态修改它们,非常难以维护.导致每次涉及修改这些公共配置,就非常老火. 所以想到了利用公共文件方法,现在在这里简单阐述一下如

  • SpringCloud Config使用配置方法

    Config 介绍 Spring Cloud Config项目是一个解决分布式系统的配置管理方案.它包含了Client和Server两个部分,server提供配置文件的存储.以接口的形式将配置文件的内容提供出去,client通过接口获取数据.并依据此数据初始化自己的应用. 构建配置中心 配置中心服务端配置 新建一个配置中心模块,且注册到eureka中,在其他服务的基础上增加如下配置 pom文件增加配置服务端设置 <!--config配置中⼼服务端--> <dependency> &

  • spring cloud config分布式配置中心的高可用问题

    在前面的文章中,我们实现了配置文件统一管理的功能,但是我们可以发现,我们仅仅只用了一个server,如果当这个server挂掉的话,整个配置中心就会不可用,下面,我们就来解决配置中心的高可用问题. 下面我们通过整合Eureka来实现配置中心的高可用,因为作为架构内的配置管理,本身其实也是可以看作架构中的一个微服务,我们可以把config server也注册为服务,这样所有客户端就能以服务的方式进行访问.通过这种方法,只需要启动多个指向同一Gitlab仓库位置的config server端就能实现

  • Spring Cloud之配置中心的搭建

    Spring Cloud是现在流行的分布式服务框架,它提供了很多有用的组件.比如:配置中心.Eureka服务发现.消息总线.熔断机制等. 配置中心在Spring Cloud的众多组件中是比较基础的,它提供了配置文件的统一管理,可以很轻松的切换不通的环境. 它的具体结构如下: 存储配置文件的文件系统(通常使用git) 配置中心服务端(从文件系统获取最新的配置文件,为客户端提供配置信息) 配置客户端(从配置中心获取配置信息) Spring Cloud是建立在Spring Boot基础上的,Sprin

  • spring cloud 配置中心客户端启动遇到的问题

    目录 spring cloud 配置中心客户端启动 发现打印的日志是这样的 那就加入web模块吧 加入之后再启动项目 spring cloud配置中心客户端配置的坑 1. 出错信息如下 2. 度娘查了下,发现很多人碰到这个坑 解决方法很简单,贴下client的配置如下 spring cloud 配置中心客户端启动 先启动了配置中心,然后启动客户端, 发现打印的日志是这样的 2020-04-29 11:13:02.333 INFO 1856 --- [ main] c.c.c.ConfigServ

  • Spring Cloud 配置中心内容加密的配置方法

    从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理. 下面使用对称性加密来加密配置,需要配置一个密钥,当然也可以使用RSA非对称性加密,但对称加密比较方便也够用了,这里就以对称加密来配置即可. 1.安装JCE JDK下的JCR默认是有长度限制的,需要替换没有长度限制的JCE版本. http://www.oracle.com/technet... 把下载包里面的两个jar文件复制替换到JAVA_HOME/jre/lib/security目录下. 2.添加加

  • spring cloud 配置中心native配置方式

    目录 spring cloud 配置中心native配置 1.pom文件添加依赖 2.配置文件application.properties中配置本地路径 3.主程序开启@EnableConfigServer注解 spring config server 使用native spring cloud 配置中心native配置 1.pom文件添加依赖 <dependency> <groupId>org.springframework.cloud</groupId> <a

  • Spring Cloud Ribbon实现客户端负载均衡的示例

    前面我们已经完成了注册中心和服务提供者两个基础组件.本文就介绍使用Spring Cloud Ribbon在客户端负载均衡的调用服务. 对于大型应用系统负载均衡(LB:Load Balancing)是首要被解决一个问题.在微服务之前LB方案主要是集中式负载均衡方案,在服务消费者和服务提供者之间又一个独立的LB,LB通常是专门的硬件,如F5,或者是基于软件的,如VS.HAproxy等.LB上有所有服务的地址映射表,当服务消费者调用某个目标服务时,它先向LB发起请求,由LB以某种策略(比如:Round

  • Spring Cloud Ribbon实现客户端负载均衡的方法

    简介 我们继续以之前博客的代码为基础,增加Ribbon组件来提供客户端负载均衡.负载均衡是实现高并发.高性能.可伸缩服务的重要组成部分,它可以把请求分散到一个集群中不同的服务器中,以减轻每个服务器的负担.客户端负载均衡是运行在客户端程序中的,如我们的web项目,然后通过获取集群的IP地址列表,随机选择一个server发送请求.相对于服务端负载均衡来说,它不需要消耗服务器的资源. 基础环境 JDK 1.8 Maven 3.3.9 IntelliJ 2018.1 Git:项目源码 更新配置 我们这次

  • spring cloud 配置阿里数据库连接池 druid的示例代码

    1.配置pom <!-- druid 数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> <exclusions> <exclusion> <groupId>com.alibaba</groupId&

  • idea快速搭建spring cloud注册中心与注册的方法

    spring cloud快速搭建 Spring Cloud是一个微服务框架,它基于spring boot, Spring Cloud提供的全套的分布式系统解决方案 . 首先我们使用gradle来创建: 选择JDK以及勾选Java,然后下一步 起包名已经项目名,下一步: 选择我们本地的gradle包,一直下一步,点击build.gradle并添加我们的依赖: group 'com.gaofei' version '1.0-SNAPSHOT' //gradle使用的插件 apply plugin:

  • 关于Spring Cloud 本地属性覆盖的问题

    目录 SpringCloud本地属性覆盖 优先级如下 官方给出了解决方案如下 SpringCloudConfig本地配置覆盖远程配置 SpringCloudConfig配置的优先级 Spring Cloud 本地属性覆盖 注:使用版本版本 spring cloud F SR2 当前在项目中使用了Spring cloud 配置中心模式,使用spring.cloud.config.server.overrides对一些公共配置进行下发,比如kafka bus 的server 配置等等,但是在一些特殊

  • 利用Spring Cloud Config结合Bus实现分布式配置中心的步骤

    概述 假设现在有个需求: 我们的应用部署在10台机器上,当我们调整完某个配置参数时,无需重启机器,10台机器自动能获取到最新的配置. 如何来实现呢?有很多种,比如: 1.将配置放置到一个数据库里面,应用每次读取配置都是直接从DB读取.这样的话,我们只需要做一个DB变更,把最新的配置信息更新到数据库即可.这样无论多少台应用,由于都从同一个DB获取配置信息,自然都能拿到最新的配置. 2.每台机器提供一个更新配置信息的updateConfig接口,当需要修改配置时,挨个调用服务器的updateConf

随机推荐