我们正在将一个应用程序更改为使用Hazelcast 3.11 Community Edition,并在几个主机上运行的多个JVM之间执行一些锁定。我们按照如下语法配置集群:
public class HazelcastBuilder {
private final String name;
private final String password;
private final String members;
private final String hostName;
private final String applicationName;
public HazelcastInstance getHazelcastInstance() {
Config hazelcastConfig = new Config();
GroupConfig groupConfig = new GroupConfig(name, password);
hazelcastConfig.setGroupConfig(groupConfig);
TcpIpConfig tcpIpConfig = new TcpIpConfig();
tcpIpConfig.setEnabled(true);
for (String member : members.split(",")) {
tcpIpConfig.addMember(member.trim());
}
hazelcastConfig.getNetworkConfig().getJoin().setTcpIpConfig(tcpIpConfig);
// By default the multicast config is enabled. Disable it here.
hazelcastConfig.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false);
String instanceName = applicationName + "-" + hostName;
hazelcastConfig.setInstanceName(instanceName);
logger.info("Creating hazelcast instance: " + instanceName);
return Hazelcast.getOrCreateHazelcastInstance(hazelcastConfig);
}
}
所有这些都可以正常工作,集群可以正常创建并按预期工作。
但是,我创建了一个单元测试,并配置了一个与应用程序使用的名称相同的本地集群,然后将我的开发人员机器添加到其中。一切正常,我的本地主机加入了应用程序集群,没有任何问题。
当然,这样的事情在生产环境中是不可接受的,我的问题是:
假设我们有一个可以运行我们的应用程序的主机名列表,防止未经授权的成员加入给定的hazelcast集群的最佳方法是什么。
提前感谢您的帮助。
如果您正在搜索安全功能,那么您应该使用Hazelcast企业版。检查功能列表:
如果您只需要防止任意计算机连接到集群,那么在opensource版本中有几个选项:
hazelcast.application.validation.token
Hazelcast属性(或系统属性)-查看参考手册了解详细信息hazelcast.socket.bind.any
属性设置为false
来禁用对所有本地接口的绑定。通常,您的生产集群运行在受信任的局域网环境中,因此您希望仅在该局域网中访问它。
最后一点注意:在Hazelcast开源版本中,组密码字段未被选中!
我们正在将一个应用程序更改为使用Hazelcast 3.11 Community Edition,并在几个主机上运行的多个JVM之间执行一些锁定。我们按照如下语法配置集群: 所有这些都可以正常工作,集群可以正常创建并按预期工作。 但是,我创建了一个单元测试,并配置了一个与应用程序使用的名称相同的本地集群,然后将我的开发人员机器添加到其中。一切正常,我的本地主机加入了应用程序集群,没有任何问题。 当
我正在进行一个Spring启动项目,我使用Hazelcast作为缓存。我启用了tcp作为连接方法,我还提到了一些成员。会员可以加入。但问题是其他节点也可以加入除了成员。有人能告诉我如何限制它吗? 这是我的配置,
问题内容: 我从Nexus存储库中检出了代码。我更改了帐户密码,并在文件中正确设置了密码。在执行时,我收到错误消息,说明它尝试从该存储库下载文件。 任何想法如何解决此错误?我在Maven 3.04中使用Windows 7 问题答案: 这里的问题是所使用的密码出现错字错误,由于密码中使用了字符/字母,因此很难识别。
我正在做hazelcast监控服务,我需要为每个集群成员添加客户名称,以了解哪个模块不在集群中。 我想要成员的常量名称,而不是 这能做到吗?
问题内容: 以下是文档中给出的HazelCast程序配置,但无法在HazelCast群集中添加成员。 请查看代码,如果需要进一步修改以将成员添加到hazelcast集群,请让我看看 问题答案: 添加此行以关闭多播以支持TCP, 将此行移到最后, 您应该在构建实例之前完成配置。