Sample
import org.apache.ignite.Ignite;
import org.apache.ignite.Ignition;
import org.apache.ignite.configuration.*;
import org.apache.ignite.events.EventType;
import org.apache.ignite.failure.StopNodeOrHaltFailureHandler;
import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.spi.communication.CommunicationSpi;
import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.discovery.DiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
import
org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
import org.apache.logging.log4j.ThreadContext;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.nio.file.Paths;
import java.util.List;
import java.util.Random;
import static org.junit.jupiter.api.Assertions.*;
public class SampleTest {
static String localhost;
private static Random random;
final static int discPort = 36101;
final static int commPort = 37601;
final static int sharedMemPort = 37235;
final static int clusterSize = 2;
private static final int messageQueueLimit = 8192;
private static final long tcpCommTimeout = 10_000L;
private static final int igniteCommPortRange = 5;
final static int igniteDiscPortRange = clusterSize * 2;
final static int igniteDiscMaxPort = discPort + igniteDiscPortRange;
private static final long discoveryNetworkTimeout = 20_000L;
private static final int default_threadpool_size = 8;
private static final int igniteLongRunningThreadPoolSize = 8;
private static final int igniteStreamerThreadPoolSize = 8;
private static final String igniteDiscHost = "127.0.0.1";
final static String tmpdir = System.getProperty("java.io.tmpdir");
public static final int[] EVENT_TYPES = {
EventType.EVT_CACHE_OBJECT_EXPIRED,
EventType.EVT_NODE_JOINED,
EventType.EVT_NODE_LEFT,
EventType.EVT_NODE_SEGMENTED,
EventType.EVT_CLIENT_NODE_DISCONNECTED,
EventType.EVT_CLIENT_NODE_RECONNECTED,
EventType.EVT_NODE_FAILED,
EventType.EVT_CACHE_REBALANCE_PART_DATA_LOST};
@BeforeAll
static void beforeAll() {
IgniteUtils.setCurrentIgniteName("");
ThreadContext.clearAll();
System.setProperty("ignite.cluster.encryption.disabled", "true");
}
@Test
void test() {
int httpPort = 37500;
localhost = "localhost:" + httpPort;
try {
startCluster();
final Ignite ignite = Ignition.ignite("NODE_I1");
assertNotNull(ignite);
} finally {
IgniteUtils.setCurrentIgniteName(null);
ThreadContext.clearAll();
}
}
private static void startCluster() {
random = new Random();
Thread.interrupted();
startNode("NODE_1");
for (int i = 2; i <= clusterSize; i++) {
startNode("NODE" + i);
}
Ignite i1 = Ignition.ignite("NODE_1");
assertEquals(clusterSize, i1.cluster().nodes().size());
}
private static void startNode(String instanceName) {
IgniteConfiguration igniteConfig = new
IgniteConfiguration().setIgniteInstanceName(instanceName)
.setPeerClassLoadingEnabled(false)
.setWorkDirectory(Paths.get(tmpdir,"ignite", "work",
String.valueOf(random.nextInt(1000000))).toString())
.setFailureDetectionTimeout(30_000L)
.setMetricsLogFrequency(300000L)
.setDataStorageConfiguration(createDataStorageConfiguration())
.setIncludeEventTypes(EVENT_TYPES)
.setCommunicationSpi(createCommunicationSpi())
.setDiscoverySpi(createDiscoverySpi())
.setPublicThreadPoolSize(default_threadpool_size)
.setDataStreamerThreadPoolSize(igniteStreamerThreadPoolSize)
.setSystemThreadPoolSize(default_threadpool_size)
.setServiceThreadPoolSize(default_threadpool_size)
.setStripedPoolSize(default_threadpool_size)
.setExecutorConfiguration(createExecutorConfig("IgniteLongRunning",
igniteLongRunningThreadPoolSize))
.setConnectorConfiguration(null)
.setClientConnectorConfiguration(null)
.setBinaryConfiguration(createBinaryConfiguration())
.setFailureHandler(new StopNodeOrHaltFailureHandler(false,
0));;
Ignite ignite = Ignition.getOrStart(igniteConfig);
}
static DataStorageConfiguration createDataStorageConfiguration() {
int evictionThreshold = 90;
String DEFAULT_MEMORY_REGION = "Default_Region";
long memSize = 200 * 1024 * 1024;;
DataRegionConfiguration regionConfig = new DataRegionConfiguration()
.setName(DEFAULT_MEMORY_REGION)
.setInitialSize(memSize)
.setMaxSize(memSize)
.setMetricsEnabled(true)
.setPageEvictionMode(DataPageEvictionMode.DISABLED)
.setEvictionThreshold(evictionThreshold / 100);
DataStorageConfiguration dataStorageConfiguration = new
DataStorageConfiguration()
.setDefaultDataRegionConfiguration(regionConfig);
dataStorageConfiguration.setMetricsEnabled(true);
return dataStorageConfiguration;
}
static CommunicationSpi createCommunicationSpi() {
return new TcpCommunicationSpi()
.setSocketWriteTimeout(tcpCommTimeout)
.setConnectTimeout(tcpCommTimeout)
.setLocalPort(commPort)
.setLocalPortRange(igniteCommPortRange)
.setSharedMemoryPort(sharedMemPort)
.setMessageQueueLimit(messageQueueLimit);
}
static DiscoverySpi createDiscoverySpi() {
return new TcpDiscoverySpi()
.setLocalPort(discPort)
.setLocalPortRange(igniteDiscPortRange)
.setNetworkTimeout(discoveryNetworkTimeout)
.setIpFinder(createIpFinder(igniteDiscMaxPort));
}
static TcpDiscoveryIpFinder createIpFinder(final int igniteDiscMaxPort)
{
return new
TcpDiscoveryVmIpFinder().setAddresses(List.of(igniteDiscHost + ":" +
discPort + ".." + igniteDiscMaxPort));
}
static ExecutorConfiguration createExecutorConfig(String name, int
threadCount) {
return new ExecutorConfiguration(name)
.setSize(threadCount);
}
static BinaryConfiguration createBinaryConfiguration() {
return new BinaryConfiguration().setCompactFooter(false);
}
}
--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/