gpt4 book ai didi

java - 从在 docker 容器中运行的 elasticsearch 客户端连接 elasticsearch 集群(即非 dockerized)

转载 作者:可可西里 更新时间:2023-11-01 02:51:06 26 4
gpt4 key购买 nike

我正在从在 docker 容器中运行的 elasticsearch 客户端连接到 elasticsearch 集群(即非 dockerized)。我可以通过在客户端中进行设置来做到这一点:

Settings settings = ImmutableSettings.settingsBuilder()
.put("node.name", "HelloESClient")
.put("discovery.zen.ping.multicast.enabled", false)
.put("discovery.zen.ping.unicast.hosts", "172.16.11.50")
.put("transport.publish_port", "9300")
.put("transport.publish_host", "192.168.17.131");

其中192.168.17.131:9300是host ip: 暴露给elasticsearch集群连接节点客户端的端口。

我无法在主机中公开任何其他端口,因为 9300 端口是在 elasticsearch config yml 中设置为 tcp 传输端口的端口。

这个问题是我无法启动多个具有连接到同一个 elasticsearch 集群的 elasticsearch 客户端的 docker 容器,因为每个容器都不能在同一台机器上公开相同的端口。

最佳答案

docker run -d -p 9300:9300 --name es1 elasticsearch
docker run -d -p 9301:9300 --name es2 elasticsearch
docker run -d -p 9302:9300 --name es3 elasticsearch
docker run -d -p 9303:9300 --name es4 elasticsearch

现在你有 4 个 elasticsearch 容器

关于java - 从在 docker 容器中运行的 elasticsearch 客户端连接 elasticsearch 集群(即非 dockerized),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38345344/

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