Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Node.java
- package org.ignite.myexamples.serverclient;
- import org.apache.ignite.*;
- import org.apache.ignite.cache.CacheMode;
- import org.apache.ignite.configuration.CacheConfiguration;
- import org.apache.ignite.configuration.ConnectorConfiguration;
- import org.apache.ignite.configuration.IgniteConfiguration;
- import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
- import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
- import static org.apache.ignite.cache.CacheRebalanceMode.SYNC;
- import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
- import java.util.*;
- public class Node {
- private static final String CACHE_NAME = "mycache";
- /**
- * Create Ignite configuration with cache
- *
- */
- public static String getCacheNameName() {
- return CACHE_NAME;
- }
- public static CacheConfiguration cacheConf() throws IgniteException {
- CacheConfiguration cacheCfg = new CacheConfiguration();
- cacheCfg.setName(CACHE_NAME);
- cacheCfg.setCacheMode(CacheMode.REPLICATED);
- cacheCfg.setRebalanceMode(SYNC);
- cacheCfg.setWriteSynchronizationMode(FULL_SYNC);
- return cacheCfg;
- }
- public static IgniteConfiguration configuration(String ip, boolean mode) throws IgniteException {
- IgniteConfiguration cfg = new IgniteConfiguration();
- cfg.setLocalHost(ip);
- cfg.setClientMode(mode);
- cfg.setCacheConfiguration(cacheConf());
- TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
- TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryVmIpFinder();
- ipFinder.setAddresses(Collections.singletonList(ip + ":47500..47509"));
- discoSpi.setIpFinder(ipFinder);
- cfg.setDiscoverySpi(discoSpi);
- return cfg;
- }
- }
- // Server.java
- package org.ignite.myexamples.serverclient;
- import org.apache.ignite.Ignite;
- import org.apache.ignite.IgniteCache;
- import org.apache.ignite.IgniteException;
- import org.apache.ignite.Ignition;
- import org.apache.ignite.cache.CachePeekMode;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- /**
- * Server node
- */
- public class Server extends Node {
- public static void main(String[] args) throws IgniteException, InterruptedException {
- if (args.length == 0) {
- System.out.println("IP address in command-line not found");
- System.exit(0);
- }
- // get ip address from 1st command-line argument
- String ip = args[0];
- // Start server node
- try (Ignite ignite = Ignition.start(configuration(ip, false))) {
- // Get cache
- try (IgniteCache<Integer, String> cache = ignite.getOrCreateCache(cacheConf())) {
- // server nodes print out total size of cache every 5sec
- DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
- while (true) {
- Date date = new Date();
- System.out.println(dateFormat.format(date) + " " + getCacheNameName() +
- " size: " + Integer.toString(cache.size(CachePeekMode.PRIMARY))
- );
- Thread.sleep(5000);
- }
- }
- }
- }
- }
- // Client.java
- package org.ignite.myexamples.serverclient;
- import org.apache.ignite.Ignite;
- import org.apache.ignite.IgniteCache;
- import org.apache.ignite.IgniteException;
- import org.apache.ignite.Ignition;
- /**
- * Client node
- */
- public class Client extends Node {
- public static void main(String[] args) throws IgniteException {
- if (args.length == 0) {
- System.out.println("IP address in command-line not found");
- System.exit(0);
- }
- // get ip address from 1st command-line argument
- String ip = args[0];
- // Start client node
- try (Ignite ignite = Ignition.start(configuration(ip, true))) {
- // Get cache created by server node
- IgniteCache<Integer, String> cache = ignite.getOrCreateCache(cacheConf());
- // Put keys into cache
- final int keyCnt = 20;
- // Store keys in cache.
- for (int i = 0; i < keyCnt; i++) {
- String val = Integer.toString(i);
- cache.put(i, val);
- System.out.println("put [key=" + i + ", val=" + val + ']');
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement