Java Hazelcast负载测试:增加并联连接的最大数量
我们目前正在使用Hazelcast(v3.3.2)进行一些负载测试。一旦并行连接的数量超过500,就会抛出异常,集群的主节点将自动关闭。我找不到关于异常的更多信息,所以我想知道在配置文件中是否有我必须增加的最大并行连接数 例外情况如下:Java Hazelcast负载测试:增加并联连接的最大数量,java,load-testing,hazelcast,Java,Load Testing,Hazelcast,我们目前正在使用Hazelcast(v3.3.2)进行一些负载测试。一旦并行连接的数量超过500,就会抛出异常,集群的主节点将自动关闭。我找不到关于异常的更多信息,所以我想知道在配置文件中是否有我必须增加的最大并行连接数 例外情况如下: com.hazelcast.core.HazelcastInstanceNotActiveException: Hazelcast instance is not ready yet! at com.hazelcast.client.impl.Clien
com.hazelcast.core.HazelcastInstanceNotActiveException: Hazelcast instance is not ready yet!
at com.hazelcast.client.impl.ClientEngineImpl$ClientPacketProcessor.processRequest(ClientEngineImpl.java:428)
at com.hazelcast.client.impl.ClientEngineImpl$ClientPacketProcessor.run(ClientEngineImpl.java:358)
at com.hazelcast.spi.impl.BasicOperationService$BasicDispatcherImpl.dispatch(BasicOperationService.java:546)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.process(BasicOperationScheduler.java:439)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.doRun(BasicOperationScheduler.java:433)
at com.hazelcast.spi.impl.BasicOperationScheduler$OperationThread.run(BasicOperationScheduler.java:408)
at ------ End remote and begin local stack-trace ------.(Unknown Source)
at com.hazelcast.client.spi.impl.ClientCallFuture.resolveResponse(ClientCallFuture.java:194)
at com.hazelcast.client.spi.impl.ClientCallFuture.get(ClientCallFuture.java:136)
at com.hazelcast.client.spi.impl.ClientCallFuture.get(ClientCallFuture.java:113)
at com.hazelcast.client.spi.ClientProxy.invoke(ClientProxy.java:110)
at com.hazelcast.client.proxy.ClientMapProxy.put(ClientMapProxy.java:323)
at com.hazelcast.client.proxy.ClientMapProxy.put(ClientMapProxy.java:189)
at com.hp.cms.rtc.benchmarksuite.dbconnectors.HazelcastConnectorImpl.saveDevice(HazelcastConnectorImpl.java:154)
at com.hp.cms.rtc.benchmarksuite.dbconnectors.HazelcastConnectorImpl.insertNewCustomer(HazelcastConnectorImpl.java:317)
at com.hp.cms.rtc.benchmarksuite.usecases.InsertNewCustomerUseCaseImpl.execute(InsertNewCustomerUseCaseImpl.java:41)
at com.hp.cms.rtc.benchmarksuite.generators.load.UseCaseJob.execute(UseCaseJob.java:29)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
更新:
下面是从连接器中摘录的源代码,用于创建到Hazelcast的连接
private HazelcastInstance hazelcastClient;
private IMap<Integer, Contact> contacts;
private IMap<Integer, Subscriber> subscribers;
private IMap<Integer, Account> accounts;
private IMap<Integer, Device> devices;
...
@Override
public void connect() {
System.setProperty("hazelcast.logging.type", "none");
ClientConfig clientConfig = new ClientConfig();
ClientNetworkConfig networkConf = new ClientNetworkConfig();
networkConf.addAddress(url); // default: 127.0.0.1:5701
clientConfig.setNetworkConfig(networkConf);
hazelcastClient = HazelcastClient.newHazelcastClient(clientConfig);
contacts = hazelcastClient.getMap("contacts");
subscribers = hazelcastClient.getMap("subscribers");
accounts = hazelcastClient.getMap("accounts");
devices = hazelcastClient.getMap("devices");
...
idGenContacts = hazelcastClient.getIdGenerator("idGenContacts");
idGenContacts.init(0);
idGenSubscribers = hazelcastClient.getIdGenerator("idGenSubscribers");
idGenSubscribers.init(0);
idGenAccounts = hazelcastClient.getIdGenerator("idGenAccounts");
idGenAccounts.init(0);
idGenDevices = hazelcastClient.getIdGenerator("idGenDevices");
idGenDevices.init(0);
...
}
你能解释一下你是如何建立这些联系的吗?我们已经对几千个连接到集群的客户端进行了测试,没有发现问题。我已经用连接器中的附加源代码更新了问题。我还升级到了Hazelcast 3.4,它将异常的发生延迟了几十个并行连接(大约530个)。请告诉我,我是否可以提供任何其他详细信息,如hazelcast.xml文件或其他内容。
com.hazelcast.spi.exception.TargetDisconnectedException: Target[Address[xx.xxx.xxx.xxx]:5701] disconnected.
at com.hazelcast.client.connection.nio.ClientConnection$CleanResourcesTask$1.createNew(ClientConnection.java:319)
at com.hazelcast.client.connection.nio.ClientConnection$CleanResourcesTask$1.createNew(ClientConnection.java:316)
at com.hazelcast.client.connection.nio.ClientConnection.cleanResources(ClientConnection.java:349)
at com.hazelcast.client.connection.nio.ClientConnection.access$200(ClientConnection.java:60)
at com.hazelcast.client.connection.nio.ClientConnection$CleanResourcesTask.run(ClientConnection.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:92)
at ------ End remote and begin local stack-trace ------.(Unknown Source)
at com.hazelcast.client.spi.impl.ClientCallFuture.resolveResponse(ClientCallFuture.java:201)
at com.hazelcast.client.spi.impl.ClientCallFuture.get(ClientCallFuture.java:142)
at com.hazelcast.client.spi.impl.ClientCallFuture.get(ClientCallFuture.java:118)
at com.hazelcast.client.spi.ClientProxy.invoke(ClientProxy.java:127)
at com.hazelcast.client.proxy.ClientAtomicLongProxy.invoke(ClientAtomicLongProxy.java:126)
at com.hazelcast.client.proxy.ClientAtomicLongProxy.getAndAdd(ClientAtomicLongProxy.java:98)
at com.hazelcast.client.proxy.ClientAtomicLongProxy.getAndIncrement(ClientAtomicLongProxy.java:116)
at com.hazelcast.client.proxy.ClientIdGeneratorProxy.newId(ClientIdGeneratorProxy.java:70)
at com.hp.cms.rtc.benchmarksuite.dbconnectors.HazelcastConnectorImpl.insertNewCustomer(HazelcastConnectorImpl.java:325)
at com.hp.cms.rtc.benchmarksuite.usecases.InsertNewCustomerUseCaseImpl.execute(InsertNewCustomerUseCaseImpl.java:41)
at com.hp.cms.rtc.benchmarksuite.generators.load.UseCaseJob.execute(UseCaseJob.java:29)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)