为了实现一致性hash算法(算法见https://blog.csdn.net/weixin_35971547/article/details/89427847),简单的编写了一个本地缓存的实现类,记录在此,供大家参考。
LocalCache.java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
/**
* @author hilbert.xu
* @date 2019/4/21
*/
public class LocalCache {
private static final Logger log = LoggerFactory.getLogger(LocalCache.class);
/**
* 默认的缓存容量
*/
private static final int DEFAULT_CAPACITY = 512;
/**
* 最大容量
*/
private static final int MAX_CAPACITY = 100000;
/**
* 刷新缓存的频率
*/
private static final int MONITOR_DURATION = 2;
// 启动监控线程
static {
new Thread(new TimeoutTimerThread()).start();
}