All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.zx.sms.common.util.ConsistentHashQueueGroup Maven / Gradle / Ivy

package com.zx.sms.common.util;

import java.util.Collection;
import java.util.concurrent.BlockingQueue;

import com.google.common.hash.HashFunction;

/**
 * 使用{@code queue}作为一致性{@code hashing}实现的节点
 * 
实现了数据在{@code queue group}之间分布式读取和写入 * @author huzorro([email protected]) * @param */ public class ConsistentHashQueueGroup, E> extends ConsistentHash { /** * @param nodes */ public ConsistentHashQueueGroup(Collection nodes) { super(nodes); } /** * @param hashFunction * @param numberOfReplicas * @param nodes */ public ConsistentHashQueueGroup(HashFunction hashFunction, int numberOfReplicas, Collection nodes) { super(hashFunction, numberOfReplicas, nodes); } /** * put message to the queue group * @param message * @throws InterruptedException */ public void put(E message) throws InterruptedException { this.get(message).put(message); } /** * take message from the queue group * @return E * @throws InterruptedException */ public E take() throws InterruptedException { return this.get(System.nanoTime()).take(); } /** * remove message from the queue group * @param message * @return boolean */ public boolean remove(E message) { return this.get(message).remove(message); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy