【问题标题】:Locator starts on incorrect hostname定位器从不正确的主机名开始
【发布时间】:2019-06-09 22:00:46
【问题描述】:

我正在使用 Ubuntu 18 AMI 在 AWS ec2 实例上运行 docker image apachegeode/geode:1.9.0。在运行 gfsh 命令启动定位器时,我看到主机名是乱码。 如何在启动定位器时设置正确的主机名,以便可以从 Java 客户端访问定位器?

使用的gfsh命令如下:

start locator --name=LocatorOne --log-level=config --J=-Dgemfire.http-service-bind-address=172.17.0.2

gfsh start locator 命令结果如下:

Starting a Geode Locator in /LocatorOne...
.........
Locator in /LocatorOne on b9e7f469d3b9[10334] as LocatorOne is currently online.
Process ID: 40
Uptime: 12 seconds
Geode Version: 1.9.0
Java Version: 1.8.0_201
Log File: /LocatorOne/LocatorOne.log
JVM Arguments: -Dgemfire.enable-cluster-configuration=true -Dgemfire.load-cluster-configuration-from-dir=false -Dgemfire.log-level=config -Dgemfire.http-service-bind-address=172.17.0.2 -Dgemfire.launcher.registerSignalHandlers=true -Djava.awt.headless=true -Dsun.rmi.dgc.server.gcInterval=9223372036854775806
Class-Path: /geode/lib/geode-core-1.9.0.jar:/geode/lib/geode-dependencies.jar

Successfully connected to: JMX Manager [host=b9e7f469d3b9, port=1099]

Cluster configuration service is up and running.

当我尝试将键值对放入区域时,Java 客户端代码中出现上述乱码主机名。

【问题讨论】:

    标签: docker amazon-ec2 ubuntu-18.04 geode gfsh


    【解决方案1】:

    http-service-bind-address 指定 HTTP 服务将绑定到的 IP 地址。您应该改用hostname-for-clients,它基本上是将发送给客户端以便他们可以连接到此定位器的主机名或IP 地址。 请查看start locator 命令以获取更多详细信息。 最好的问候。

    【讨论】:

    • 我使用以下命令启动定位器 start locator --name=LocatorOne --log-level=config --hostname-for-clients=>。日志如下 在 /LocatorOne 中启动 Geode Locator ... ...... 95efd853b30e__[10334] 上的 /LocatorOne 中的定位器,因为 LocatorOne 当前在线 ... ... 成功连接到:JMX Manager [host=__95efd853b30e, port=1099] 如您所见,主机仍然没有正确设置。
    • 我最近在GEODE-5731 工作,使用最新的develop 版本根本无法重现该问题,hostname-for-client 属性已正确使用并在客户请求时与他们共享连接信息...也许docker image 搞砸了?
    • @jaun Ramos 我运行 geode docker image version 1.8.0 并启动定位器命令为 start locator --name=LocatorOne --log-level=config --hostname-for-clients= > 。我看到日志为 Locator in /LocatorOne on 1d907025f4bc[10334],因为 LocatorOne 当前在线 因此客户端无法连接到主机 1d907025f4bc。不知何故,我无法设置 docker 映像主机名 ...
    • 我对@9​​87654329@ 了解不多,所以很遗憾,我无法回答...一个好的测试是直接在AWS EC2 Instance 上启动定位器没有 Docker 看看是否可行。如果他们这样做了,那么至少您会知道问题与Docker 图像主机名有关,这可能会缩小故障排除的范围。只是我的 2 美分。
    • 感谢您的回复。我可以使用以下命令启动容器 sudo docker run -it --name > --hostname > -p 8080:8080 -p 10334:10334 -p 40404:40404 -p 1099:1099 -p 7070:7070 apachegeode/geode:1.9.0 启动定位器 --name=LocatorOne --hostname-for-clients=> --log-level= config --J='-Dgemfire.jmx-manager-hostname-for-clients=>'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 2016-12-17
    • 2013-01-11
    相关资源
    最近更新 更多