使用 vertx-config 异步加载配置文件
Using vetx-config to load a configuation file asynchronously
我正在写一个简单的 vertx Verticle,它在 start 方法中加载一个配置文件:
public void start(Promise<Void> startPromise) {}
我原来用的:
public void start( final Future<Void> startFuture )
但此方法已被弃用。
我正在使用此代码:
ConfigStoreOptions store = new ConfigStoreOptions().setType("file").setFormat("yaml")
.setConfig(new JsonObject().put("path", MICROSERVICE_CONFIG_FILE));
ConfigRetriever retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore(store));
retriever.getConfig(ar -> {
if (ar.failed()) {
// Failed to retrieve the configuration
logger.error("Error retrieving service configuration");
} else {
config = ar.result();
this.startService(startPromise);
}
});
然后,在被调用的 "startService" 方法中,我正在完成 startPromise。
每隔几秒我就会看到创建了两个新线程:
vert.x-internal-blocking
vert.x-worker-thread-N
如果我不加载配置文件,就不会创建这些。我是否误解了如何使用 vertx-config 异步加载配置文件?
来自 ConfigurationRetriever
文档:
The Configuration Retriever periodically retrieve the configuration,
and if the outcome is different from the current one, your application
can be reconfigured. By default, the configuration is reloaded every 5
seconds.
https://vertx.io/docs/vertx-config/java/#_listening_for_configuration_changes
这就是你所看到的。
我正在写一个简单的 vertx Verticle,它在 start 方法中加载一个配置文件:
public void start(Promise<Void> startPromise) {}
我原来用的:
public void start( final Future<Void> startFuture )
但此方法已被弃用。
我正在使用此代码:
ConfigStoreOptions store = new ConfigStoreOptions().setType("file").setFormat("yaml")
.setConfig(new JsonObject().put("path", MICROSERVICE_CONFIG_FILE));
ConfigRetriever retriever = ConfigRetriever.create(vertx, new ConfigRetrieverOptions().addStore(store));
retriever.getConfig(ar -> {
if (ar.failed()) {
// Failed to retrieve the configuration
logger.error("Error retrieving service configuration");
} else {
config = ar.result();
this.startService(startPromise);
}
});
然后,在被调用的 "startService" 方法中,我正在完成 startPromise。
每隔几秒我就会看到创建了两个新线程:
vert.x-internal-blocking
vert.x-worker-thread-N
如果我不加载配置文件,就不会创建这些。我是否误解了如何使用 vertx-config 异步加载配置文件?
来自 ConfigurationRetriever
文档:
The Configuration Retriever periodically retrieve the configuration, and if the outcome is different from the current one, your application can be reconfigured. By default, the configuration is reloaded every 5 seconds.
https://vertx.io/docs/vertx-config/java/#_listening_for_configuration_changes
这就是你所看到的。