我们正在使用 Vert.x WebClient (io.vertx.ext.web.client.WebClient)。我们在 k8s 环境上运行 vert.x 进程。
使用客户端的请求者服务总是到达同一个 pod,而我们在 k8s-service 后面有多个 pod。
我以这种方式启动客户端:
private void initAsyncClient() {
WebClientOptions options = new WebClientOptions();
options.setConnectTimeout(timeout);
options.setMaxPoolSize(poolSize);
webClient = WebClient.create(vertx, options);
}
我们以这种方式调用端点:
webClient.getAbs(absoluteUrl)
.send(response -> {
if (response.succeeded() && HttpStatus.valueOf(response.result().statusCode()).is2xxSuccessful()) {
try {
log.info(data);
} catch (Exception e) {
//
}
});
我们不确定我们做错了什么,因为当我们使用 curl 并访问同一个端点(k8s-service)时,我们可以看到请求被转发到两个 pod 实例。
使用 vert.x 版本 3.9.1