配置中心---客户端从配置服务中心中配置的git获取配置,遇到的相关错误解决

首先说明一下情景:在配置服务端已经配置了git相关的配置,并且已经将配置服务端注册到了Eureka服务中心了,并且通过浏览器进行访问git中的文件都是可以正常访问的。
当我去创建客户端去实际操作 访问配置中心中的配置文件的过程中碰到了如下两个问题

  1. Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}
    com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect
  2. Description:Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.
    Reason: Failed to determine a suitable driver class

git中的配置文件如下

env: dev
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8641/eureka/
server:
  port: 8651
spring:
  application:
    name: product
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    password: 123456
    url: jdbc:mysql://127.0.0.1:3306/project?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
    username: root
  jpa:
    show-sql: true

客户端 的bootstrap.yml文件中的配置如下:

spring:
  application:
    name: product
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG   #CONFIG为我配置中心服务的名字
      profile: dev     

基本情况如上:下面说一下这两个问题的原因以及解决办法
首先说一下第一个问题,我们可以通过上面的错误提示以及git中的配置可以看出来,Eureka的端口还是8671它的默认端口,没有使用我们配置的8641。而本地也没有相应的8671端口的Eureka服务中心的启动,所以会报这个错误。为什么没有使用我们配置的8641端口?首先我们屡一下流程,首先客户端根据Eureka服务中心,找到server-id为CONFIG的服务,然后再根据CONFIG配置服务中的配置文件找到git上的文件拉取到本地。这就是它的一个大体流程,但是我们看一下上面 客户端 的bootstrap.yml文件中并没有Eureka服务中心的配置,所以它会默认去找默认的8671这个路径,所以就会出现上面的那个问题,解决办法就是将git配置文件中的Eureka服务中心的uri配置在客户端 的bootstrap.yml文件中进行配置,客户端 的bootstrap.yml文件修改如下:

spring:
  application:
    name: product
  cloud:
    config:
      discovery:
        enabled: true
        service-id: CONFIG   #CONFIG为我配置中心服务的名字
      profile: dev  
 eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:8641/eureka/   

第二个错误提示的意思就是未能配置数据源:未指定“url”属性,也无法配置嵌入式数据源。原因:未能确定合适的驱动程序类,但是通过上面git中的配置文件可以看到数据库这块的配置是已经配置过的,并且已经再三确认过配置项是没有问题的。解决办法就是在启动类上面的@SpringBootApplication做出修改,修改如下:

import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(exclud=exclude = DataSourceAutoConfiguration.class))

你可能感兴趣的:(Spring,Cloud)