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

在spring cloud中的bootstrap.yml上设置profile以针对不同的配置服务器

鲜于承基
2023-03-14
version: '2'

services: 
  config:
    image: springbox-config-server
    restart: always
    ports:
     - "8890:8890"

  discovery:
    image: springbox-eureka
    restart: always
    ports:
     - "8763:8763"

因此,在我的微服务中,我必须以configserver的短主机名为目标。

spring:
  application:
    name: myservice
  cloud:
    config:
      uri: http://config:8890
      fail-fast: true

但是,当我在没有docker的IDE中本地运行它们时,短主机名无法解析。

因此,我正在寻找一个解决方案,目标不同的配置服务器根据我的环境。

共有1个答案

漆雕昊天
2023-03-14

我找到了解决办法。基本上,我们使用spring profile来丰富引导文件。例如:

spring:
  application:
    name: myservice
  cloud:
    config:
      uri: http://config:8890
      fail-fast: true

---
spring:
  profiles: development
  cloud:
    config:
      uri: http://localhost:8890

好消息是我们不必重写一个配置文件中的所有属性。默认属性是继承的。例如,当启用开发配置文件时,我的应用程序名继承自名为always MyService的默认应用程序名。

若要激活配置文件,请使用以下属性启动服务

-Dspring.profiles.active=development
 类似资料:
  • 每个环境都有不同的配置服务器。每个Spring Boot应用程序都应该以其相应的配置服务器为目标。我试图通过在bootstrap.properties文件中设置配置文件来实现这一点,例如: 然后设置cla,但加载的配置服务器始终是文件中设置的最后一个(即在上述设置中加载prod配置服务器,然后如果删除prod,则加载stage)。

  • 我有一个Maven项目,其中包括一个Maven插件(Liquibase Maven插件),它公开了不同的目标。其中两个目标(update和diff)需要在它们之间发生冲突的不同参数(因为两者的语义不同),因此我需要在两个目标执行中赋予Maven不同的属性。 有没有办法在Maven中为不同的目标传递不同的配置?

  • 我有两台JBoss服务器,JbossA和JbossB。每个都有自己的JNDI。现在,我在JbossA上有一个名为JMS/Client的JMS,在JbossB上有个名为JMS/Server的JMS。 现在,我希望JbossA上的应用程序能够使用自己的JNDI访问jms/服务器。此外,我希望JbossB上的应用程序使用jndi名称jms/Client1访问jms/Client,并使用自己的jndi。

  • 本文向大家介绍在Nginx服务器中配置针对TCP的负载均衡的方法,包括了在Nginx服务器中配置针对TCP的负载均衡的方法的使用技巧和注意事项,需要的朋友参考一下  默认nginx不支持tcp的负载均衡,需要打补丁,(连接方式:从客户端收到一个连接,将从本地新建一个连接发起到后端服务器),具体配置如下: 一、安装Nginx 1.下载nginx 2.下载tcp模块补丁 源码主页: https://g

  • 我们来看看如何配置服务器端的 SSH 访问。 本例中,我们将使用 authorized_keys 方法来对用户进行认证。 同时我们假设你使用的操作系统是标准的 Linux 发行版,比如 Ubuntu。 首先,创建一个操作系统用户 git,并为其建立一个 .ssh 目录。 $ sudo adduser git $ su git $ cd $ mkdir .ssh && chmod 700 .ssh

  • 在我的Spring Boot项目中,我定义了4个配置文件 演示 开发 测试 产品 application-demo.yml 春云拱顶库 错误日志: