我在Hazecast 3.11中尝试了以下内容
1。)设置节点A,该节点用对象填充IQueue(分布式hazelcast队列):
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
IQuery<String> configs = hazelcastInstance.getQueue("configs");
configs.add("foo");
2。)将节点A与第二个节点B联接在一起,并访问共享队列,该共享队列从节点A返回存储的值
HazelcastInstance hazelcastInstance = Hazelcast.newHazelcastInstance();
IQuery<String> configs = hazelcastInstance.getQueue("configs");
System.out.println(configs.poll());
3。) 尽管我确实将backup-count和async-backup-count设置为零,但是hazelcast似乎将内容从节点1复制到节点2。为什么?
我通过xml和程序化配置进行了尝试:
com.hazelcast.config.Config cfg = new com.hazelcast.config.Config();
NetworkConfig network = cfg.getNetworkConfig();
network.setPort(5701).setPortAutoIncrement(true).setPortCount(20);
JoinConfig join = network.getJoin();
join.getMulticastConfig().setEnabled(false);
join.getTcpIpConfig().addMember("172.105.65.xxx").setRequiredMember(null).setEnabled(true);
cfg.getQueueConfig("configs").setBackupCount(0).setAsyncBackupCount(0);
XML:
<?xml version="1.0" encoding="UTF-8"?>
<hazelcast xsi:schemaLocation=
"http://www.hazelcast.com/schema/config hazelcast-config-3.7.xsd"
xmlns="http://www.hazelcast.com/schema/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<network>
<port auto-increment="true" port-count="20">5701</port>
<join>
<multicast enabled="false">
</multicast>
<tcp-ip enabled="true">
<member>172.105.65.xxx</member>
</tcp-ip>
</join>
</network>
<queue name="configs">
<statistics-enabled>false</statistics-enabled>
<max-size>0</max-size>
<backup-count>0</backup-count>
<async-backup-count>0</async-backup-count>
<empty-queue-ttl>-1</empty-queue-ttl>
</queue>
</hazelcast>