当前位置: 首页 > 知识库问答 >
问题:

Docker-Spring Cloud Config Client,与Config Server发现一起发布

贺景铄
2023-03-14

我正在试用Spring Cloud Netflix stack和Spring Cloud Config服务器和客户端。

version: '3'
services:

#Eureka Service
  discovery:
    container_name: discovery
    image: jbprek/discovery:latest
    ports:
      - "8761:8761"

#Spring cloud config server
  configservice:
    container_name: configserver
    image: jbprek/configserver:latest
    ports:
      - "8888:8888"
    depends_on:
      - discovery

#Example microservice using discovery and spring cloud config
  constants-service:
    container_name: constants-service
    ports:
      - "8080:8080"
    image: jbprek/constants-service:latest
    depends_on:
      - discovery
      - configservice

git clone https://prek@bitbucket.org/prek/boot-netflix-problem.git
spring.application.name=constants-service
spring.cloud.config.uri=http://configserver:8888

然后,为了通过发现查找configserver,然后从constant-service检索配置,我修改了bootstrap.properties文件,如下所示:

spring.application.name=constants-service
#Lookup through Eureka
spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=CONFIGSERVER

通过使用localhost而不是discovery作为eureka主机名,上述更改具有阻止“constants-service”连接到eureka的效果,并且configserver服务的查找和向eureka的自我注册都将失败。

用于发现的Application.Properties为:

server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
server.port=8888
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://discovery:8761/eureka

spring.cloud.config.server.git.uri=https://bitbucket.org/prek/boot-netflix-problem-config-data.git
spring.cloud.config.server.git.clone-on-start=true
spring.cloud.config.server.git.force-pull=true
spring.cloud.config.discovery.enabled=false
spring.application.name=constants-service

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://discovery:8761/eureka
spring.application.name=constants-service

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://discovery:8761/eureka

spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=CONFIGSERVER

共有1个答案

禹正阳
2023-03-14

您正在将应用程序切换到“发现优先模式”,因此您的常量服务应该了解Eureka并通过名称从其获取configserver URL。

问题很简单:constants-service的bootstrap.properties不包含到Eureka的URL,您应该将Eureka客户端配置从git repo(application.properties)移到bootstrap.properties。

 类似资料:
  • 我很难用Filebeat的Docker自动发现功能来使用定制的Elasticsearch摄取管道。我已经在我的< code>filebeat.yml文件中开始使用自定义处理器,但是我更愿意将它转移到我创建的自定义摄取管道。 首先,这是我使用自定义处理器的配置,它为我的Servarr应用Docker容器提供自定义的类似grok的处理(通过在我的docker-compose.yml文件中对它们应用标签

  • 我的任务是对接angular应用程序,并使用Nginx提供服务。 我已将angular项目构建到dist文件夹,并希望将此文件夹移动到nginx- 这就是我Docker项目的结构 在这个目录的顶部是一系列其他服务,它们需要与angular应用程序一起运行,而angular应用程序正在按预期运行。用下面的docker编写。yml文件 当我用docker build构建并运行这个容器时,它会按预期运行

  • 问题内容: 我已经通过使用ApacheCXF(v3.0.4)实现了JAX-WS客户端,并且一切正常,但是当我想在Java 8(jdk1.8.0_25)中使用安全连接(SSL / TLS)时出现了问题。 我在日志(-Djavax.net.debug = all)中看到以下异常: 经过depeer分析后,我发现问题是由于Java 8不会发送server_name(SNI),而Java 7却发送了ser

  • Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 IT 工程师:Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的

  • 问题内容: 我正在使用 一个简单的docker-compose脚本。 我使用运行该脚本。这将创建我的2个容器,但仅在我的主容器上(从此处执行命令)创建容器。我希望在主机上创建一个,在节点上创建一个。我也尝试添加 和 每次服务后,但这都失败了: 当我执行网络创建时 有人可以通过docker- compose帮助我在2个节点上部署2个容器。Swarm正在为我的“集群”工作。我按照本教程进行了验证。 问

  • configServer 是以 web service 形式提供通用配置信息管理的 web 平台,是个实用的小工具。 主要功能: 服务端以 KEY-VALUE 模式定义配置信息,以webui方式对配置信息进行管理(增删改查)。 客户端以 http webapi 方式使用配置信息 VALUE 支持 string ,int , float , array , json 等多种数据格式 VALUE 支持