【问题标题】:Discovering Hazelcast Cluster Groups发现 Hazelcast 集群组
【发布时间】:2017-06-05 14:58:13
【问题描述】:

我将几个 Hazelcast 集群用于不同的目的,并且不希望它们交互,因此使用了不同的集群组。我编写了一个简单的监控应用程序来跟踪每个集群的成员,但想知道是否有一种方法可以确定可以访问哪些集群组?监视器作为客户端连接,我必须在我的应用程序配置中对集群组名称进行硬编码,以便它可以尝试与每个客户端创建连接。目前只有两个组很好,但随着我的使用范围扩大,如果我可以以编程方式确定所有可用于连接的集群会很有帮助 - 这可能吗?

谢谢

【问题讨论】:

    标签: hazelcast


    【解决方案1】:

    组名是集群的凭据。除非您知道名称,否则您将无法连接到它。
    我们有一个类似的用例,并且正在通过维护组名列表的属性并仅循环它们以检查连接来处理此问题。这需要您拥有一个通用组密码或从其他来源检索相应的密码。

    【讨论】:

    • 谢谢 - 我可能是这种情况
    【解决方案2】:

    一个可能的解决方案: 实例化两个具有不同配置的客户端,一个为 cluster1 配置,另一个为 cluster2 配置。将客户端生命周期侦听器附加到每个客户端。查找 CLIENT_DISCONNECTED 和 CLIENT_CONNECTED 事件。

    【讨论】:

    • 谢谢,但这仍然需要您在应用程序中知道所有可能的组名是什么 - 我希望能够从 Hazelcast 检索所有可定位组的列表
    • 没有这样的 API 可以获取环境中所有集群的列表。但无论如何,这是您必须为每个集群设置的配置。如果您有权访问配置 xml,则可以解析所有 xml 以获取组名列表。顺便说一句,组名是安全配置的一部分。
    【解决方案3】:

    Hazelcast 成员 exposes monitoring data via JMX 协议。可以通过与成员的 JMX 连接发现 groupName 和成员列表:

    http://docs.hazelcast.org/docs/latest-development/manual/html/Management/JMX_API_Per_Member.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多