使用 CLI 访问 Hazelcast

Hazelcast access using CLI

假设我在远程机器上的某个地方有 Hazelcast 运行 的实例,并且它在官方 Docker 图像中执行。所以我想看看 Hazelcast 存储的一些数据,就像在第一个视频中一样 here。所以我想知道是否有任何方法可以从任何 CLI 实用程序连接到现有的 Hazelcast 实例以获取数据,但没有管理中心

最好的方法是编写一个 Java 实用程序,可以从 CLI 运行。它可以使用 HazelcastClient 连接到集群,获取 IMap 并根据需要进行打印。此外 IMap.getLocalMapStats 提供与该节点的本地地图相关的统计数据。

安德烈,

您可以利用 Hazelcast 演示应用程序。 您可以在这里找到:

  • com.hazelcast.console.ConsoleApp 成员控制台,hazelcast*.jar 的一部分。参见 GH
  • com.hazelcast.client.console.ClientConsoleApp 客户端控制台,hazelcast-client*.jar 的一部分。参见 GH

您可以在CLI模式下将server.sh修改为运行会员/客户端

java -server $JAVA_OPTS com.hazelcast.console.ConsoleApp

java -server $JAVA_OPTS com.hazelcast.client.console.ClientConsoleApp

如果您有任何问题,请告诉我。 谢谢

感谢 Viktor Gamov,我找到了从 CLI 查看数据的方法,其中提供的 com.hazelcast.client.console.ClientConsoleApphazelcast*.jar 的一部分。 以下是如何使用客户端连接到现有实例的小摘要:

  1. 修改 clientConsole.sh(位于 <hazelcast installation>/demo 下)脚本(如果需要,也可以创建新脚本)并且其中的行必须如下所示: java -Djava.net.preferIPv4Stack=true -cp .:../lib/hazelcast-all-<version>.jar com.hazelcast.client.console.ClientConsoleApp
  2. 将您的配置文件与您的脚本放在同一目录中(可能 <hazelcast installation>/demo
  3. 您的配置文件的名称应与 hazelcast-client.xml 完全相同,并且可能如下所示:
<hazelcast-client xmlns="http://www.hazelcast.com/schema/client-config">
    <group>
        <name>dev</name>
        <password>dev-pass</password>
    </group>
    <network>
        <cluster-members>
            <address>localhost:5701</address>
        </cluster-members>
    </network>
</hazelcast-client>

添加到@Viktor Gamov 的 and @Andrii Pischanski's ,我写了一个简单的 shell 脚本来自动执行以下过程:

  1. 正在下载 hazelcast-all-<version>.jar 的正确版本(包含 ClientConsoleApp class),
  2. 正在创建适当的 hazelcast-client.xml 文件以连接到群集:https://github.com/YongJieYongJie/hazelcast-cli
  3. 运行 适当的 java 命令实际连接到集群。

希望这对某人有所帮助。