
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