Exemplo n.º 1
0
  @Before
  public void setUp() throws InterruptedException {
    node1 = new Jedis(nodeInfo1.getHost(), nodeInfo1.getPort());
    node1.connect();
    node1.flushAll();

    node2 = new Jedis(nodeInfo2.getHost(), nodeInfo2.getPort());
    node2.connect();
    node2.flushAll();

    node3 = new Jedis(nodeInfo3.getHost(), nodeInfo3.getPort());
    node3.connect();
    node3.flushAll();

    node4 = new Jedis(nodeInfo4.getHost(), nodeInfo4.getPort());
    node4.connect();
    node4.flushAll();

    nodeSlave2 = new Jedis(nodeInfoSlave2.getHost(), nodeInfoSlave2.getPort());
    nodeSlave2.connect();
    nodeSlave2.flushAll();
    // ---- configure cluster

    // add nodes to cluster
    node1.clusterMeet(localHost, nodeInfo2.getPort());
    node1.clusterMeet(localHost, nodeInfo3.getPort());

    // split available slots across the three nodes
    int slotsPerNode = JedisCluster.HASHSLOTS / 3;
    int[] node1Slots = new int[slotsPerNode];
    int[] node2Slots = new int[slotsPerNode + 1];
    int[] node3Slots = new int[slotsPerNode];
    for (int i = 0, slot1 = 0, slot2 = 0, slot3 = 0; i < JedisCluster.HASHSLOTS; i++) {
      if (i < slotsPerNode) {
        node1Slots[slot1++] = i;
      } else if (i > slotsPerNode * 2) {
        node3Slots[slot3++] = i;
      } else {
        node2Slots[slot2++] = i;
      }
    }

    node1.clusterAddSlots(node1Slots);
    node2.clusterAddSlots(node2Slots);
    node3.clusterAddSlots(node3Slots);

    JedisClusterTestUtil.waitForClusterReady(node1, node2, node3);
  }
    @Override
    public void run() {

      RedisListener rl = new RedisListener();

      jedis = jedisPool.getResource();
      jedis.connect();

      logger.trace("Redis Subscriber ({}):  subscribing to {}.", id, channel);

      jedis.subscribe(rl, channel);

      logger.debug("Redis Subscriber ({}):  Exiting.", id);

      setComplete();
    }
    @Override
    public void run() {

      logger.debug("RedisPublisher:  {}  Starting.", id);
      Jedis jedis = jedisPool.getResource();
      jedis.connect();

      logger.debug("RedisPublisher:  {}  connected.", id);

      for (int i = 0; i < testCount; i++) {
        jedis.publish(channel, REDIS_PAYLOAD);
        tallyMessage();
      }

      logger.debug("Redis Publisher ({}) :  Published {} messages", id, testCount);

      jedis.disconnect();

      setComplete();
    }