java - 禁用本地 consul 配置

标签 java microservices micronaut

我在本地使用“consul-config”功能创建了一个简单的 micronaut 应用程序。我的代码可以连接领事键/值存储并获取属性。我的 bootstrap.yml 中有以下配置

micronaut:
  application:
    name: user-service
config-client:
  enabled: true
consul:
  client:
    registration:
      enabled: true
    defaultZone: "${CONSUL_HOST:localhost}:${CONSUL_PORT:8500}"

一切都很好,但我不想在本地计算机上使用 consul,因为它涉及网络 Activity ,所以启动需要一些时间。我想避免在本地使用 consul,但在开发、测试和生产环境中需要它。

我的应用程序中有以下代码。 @Value 注释将尝试加载“db-schema”,如果找不到,则使用“local”作为默认值。因此,如果领事被禁用,那么我的应用程序应该使用“本地”,否则它应该根据领事配置加载值。

@Value("${db-schema:local}")
private String dbSchema;

如何在不更改代码且仅使用环境选项的情况下做到这一点?

我尝试设置 VM 选项“-Dmicronaut.config-client.enabled=false”,但它仍然加载 bootstrap.yml 并尝试连接 consul。

最佳答案

有多种方法可以做到这一点。一种是创建一个像 src/main/resources/application-local.yml 这样的文件,其中包含以下内容:

consul:
  client:
    registration:
      enabled: false

并在您的本地环境中导出 MICRONAUT_ENVIRONMENTS=local

关于java - 禁用本地 consul 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56943156/

相关文章:

java - 仅 Grep 字符串中某些模式后的几个数字

java - 与 Java 进程之间的通信是否仍在微服务中?

node.js - Google Cloud Endpoints 等同于 API 网关,还是 Endpoints 等同于微服务?

java - 具有连接实体属性的 Micronaut Data DTO 投影

java - 如何加入 hibernate ?

java - Android CAB 在项目被删除时强制溢出菜单

java - Micronaut:在 Spock 中模拟工厂创建的 Bean

java - 如何将 Hibernate 的 Session 注入(inject) micronaut 中的异步监听器?

java - 如何将捕获的图像或从图库中选择的图像转换为base64?

docker - Jhipster-在网关主机上部署除网关本身,混合Docker和本地部署以外的所有内容时,无法使用Gateway应用程序