簡體   English   中英

在spring cloud中的bootstrap.yml上設置配置文件以定位不同的配置服務器

[英]Set profile on bootstrap.yml in spring cloud to target different config server

我使用docker compose來運行我所有的微服務。 對於每項服務,我給它一個簡短的主機名。

version: '2'

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

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

因此,在我的微服務中,我必須使用其短主機名來定位配置服務器。

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

但是,當我在沒有docker的IDE中本地運行它們時,無法解析短主機名。

所以我正在尋找一種解決方案,根據我的環境定位不同的配置服務器。

我找到了解決方案。 基本上,我們使用spring profile來豐富bootstrap文件。 例如

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM