gpt4 book ai didi

elasticsearch - 如何使用Docker Compose连接到Elasticsearch

转载 作者:行者123 更新时间:2023-12-02 22:39:31 25 4
gpt4 key购买 nike

我使用Java API从我的Web应用程序连接到Elasticsearch实例:

static Optional<Client> getClient(String hostName, int port) {
return getHost(hostName).map(host -> TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(host, port))
);
}

static Optional<InetAddress> getHost(String hostName) {
InetAddress host = null;
try {
host = InetAddress.getByName(hostName);
} catch (UnknownHostException e) {
LOG.warn("Could not get host: {}", hostName, e);
}
return Optional.ofNullable(host);
}

在切换到 Docker Compose之前,我使用
docker run --net=my-network --name=myDb elasticsearch

和我的网络应用程序使用
docker run --net=my-network -p 8080:4567 me/myapp

并且确实可以使用 getClient("myDb", 9300)连接到数据库。

但是,既然我已切换到Docker Compose,我不知道如何连接到Elasticsearch。这是我当前的 docker-compose.yml:
version: '2'

services:
my-app:
image: me/myapp
ports:
- "8080:4567"
networks:
- my-network

elasticsearch:
image: elasticsearch
networks:
- my-network

networks:
my-network:
driver: bridge

可以理解,由于我没有在 UnknownHostException中设置我的Elasticsearch实例的主机名,因此会导致生成 docker-compose.yml

我怎么做?

最佳答案

我必须设置一个 alias :

  elasticsearch:
image: elasticsearch
networks:
my-network:
aliases:
- myDb

现在,当调用问题中所示的 myDb时,我可以在端口9300上连接到 getClient("myDb", 9300)

关于elasticsearch - 如何使用Docker Compose连接到Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37146382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com