当前位置: 首页>>代码示例>>Java>>正文


Java Hashing.consistentHash方法代码示例

本文整理汇总了Java中com.google.common.hash.Hashing.consistentHash方法的典型用法代码示例。如果您正苦于以下问题:Java Hashing.consistentHash方法的具体用法?Java Hashing.consistentHash怎么用?Java Hashing.consistentHash使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.google.common.hash.Hashing的用法示例。


在下文中一共展示了Hashing.consistentHash方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: choose

import com.google.common.hash.Hashing; //导入方法依赖的package包/类
@Override
public Server choose(Object key) {
	
	//使用一致性哈希进行分发
	//TODO 此处使用了GUAVA中简单的一致性哈希算法选择服务,但这里存在性能缺陷:当reachableServers中间某一个服务节点失效了
	//那么后续节点的一致性哈希结果将会不匹配,后续需要使用更完善的哈希环 加上 虚拟节点 的形式解决本问题
	List<Server> reachableServers = getLoadBalancer().getReachableServers();
	if(reachableServers != null && reachableServers.size() != 0){
		int serverSeq = Hashing.consistentHash(Thread.currentThread().getId(), reachableServers.size());
		return reachableServers.get(serverSeq);
	} else {
		return super.choose(key);
	}
}
 
开发者ID:QNJR-GROUP,项目名称:EasyTransaction,代码行数:15,代码来源:RestRibbonEasyTransRpcConsumerImpl.java

示例2: calculate

import com.google.common.hash.Hashing; //导入方法依赖的package包/类
@Override
public Integer calculate(String columnValue)  {
    try
    {
        long targetTime = formatter.get().parse(
                columnValue).getTime();
        int targetPartition = (int) ((targetTime - beginDate) / partionTime);
        int innerIndex =  Hashing.consistentHash(targetTime,intGroupPartionSize);
        return targetPartition * intGroupPartionSize + innerIndex;

    } catch (ParseException e)
    {
        throw new IllegalArgumentException(new StringBuilder().append("columnValue:").append(columnValue).append(" Please check if the format satisfied.").toString(),e);
    }
}
 
开发者ID:huang-up,项目名称:mycat-src-1.6.1-RELEASE,代码行数:16,代码来源:PartitionByRangeDateHash.java

示例3: hash

import com.google.common.hash.Hashing; //导入方法依赖的package包/类
public static int hash(long str,int size)
{
return     Hashing.consistentHash(str,size)      ;
}
 
开发者ID:huang-up,项目名称:mycat-src-1.6.1-RELEASE,代码行数:5,代码来源:PartitionByRangeDateHashTest.java

示例4: computeSegment

import com.google.common.hash.Hashing; //导入方法依赖的package包/类
public static int computeSegment(String routingKey, Function<String, Long> hashFunction, int segments) {
    return Hashing.consistentHash(hashFunction.apply(routingKey), segments);
}
 
开发者ID:flux-capacitor-io,项目名称:flux-capacitor-client,代码行数:4,代码来源:ConsistentHashing.java


注:本文中的com.google.common.hash.Hashing.consistentHash方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。