如何在没有网络的情况下创建嵌入进程内/内存中的Hazelcast实例?

Les*_*ood 10 java hazelcast

在我的单元测试中,我想创建一个嵌入式(进程内/内存中)Hazelcast实例,它根本不会尝试启动或执行任何网络操作.

我该怎么做呢?

例如:

Config config = new Config();

// what goes here?

HazelcastInstance inProcessOnly = Hazelcast.newHazelcastInstance(config);
Run Code Online (Sandbox Code Playgroud)

Ayu*_*lik 6

FWIW我在Hazelcast 3.6.1中创建了一个测试,并使用构造函数中的以下代码以编程方式禁用了网络集群.这将创建一个独立的服务器进行测试.

它没有使用模拟那么快,但它比接受默认配置更快.

Config config = new Config();
config.setProperty("hazelcast.shutdownhook.enabled", "false");
NetworkConfig network = config.getNetworkConfig();
network.getJoin().getTcpIpConfig().setEnabled(false);
network.getJoin().getMulticastConfig().setEnabled(false);
HazelcastInstance instance = Hazelcast.newHazelcastInstance(config);
Run Code Online (Sandbox Code Playgroud)


Wim*_*uwe 5

您还可以使用TestHazelcastInstanceFactory,Hazelcast内部也使用它进行单元测试.您需要为它添加此Maven依赖项:

<dependency>
  <groupId>com.hazelcast</groupId>
  <artifactId>hazelcast</artifactId>
  <version>${hazelcast.version}</version>
  <classifier>tests</classifier>
  <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

有关如何使用的示例,请参阅BasicCacheTest.