springcloud负载均衡采用一致性哈希算法
2021-07-11 19:05
标签:tco oid actor etc gen client hash object com spring cloud网关集成了zuul和熔断器,因此网关天生具有负载均衡和熔断的功能。因此spring cloud的负载均衡算法,就是ribbon的负载均衡算法。在ribbon中,负载均衡默认了轮询的方法。如果想采用一致性哈希算法,实现负载均衡,那应该怎么办呢? 这里我才用guava的一致性哈希算法,就不自己写一致性哈希算法了。 首先pom.xml: 然后自己写一个类,集成AbstractLoadBalancerRule: 就完成了。 如果只是想针对某个应用实现一致性哈希负载均衡,那么可以以下几步: 1.去掉ConsistentHash上面的注解 2.新建一个类MyRibbonConfiguration: 3 这样就只是针对hello-service进行一致性哈希负载均衡算法,其他 的还是采用轮询。 springcloud负载均衡采用一致性哈希算法 标签:tco oid actor etc gen client hash object com 原文地址:https://www.cnblogs.com/heqiyoujing/p/9550606.html
@Component
public class ConsistentHash extends AbstractLoadBalancerRule {
private Logger log = LoggerFactory.getLogger(ConsistentHash.class);
public Server choose(ILoadBalancer lb, Object key) {
if (lb == null) {
log.warn("no load balancer");
return null;
}
Server server = null;
int count = 0;
while (server == null && count++ ) {
List
public class MyRibbonConfiguration {
@Bean
public IRule ribbonRule() {
return new ConsistentHash();//实例化与配置文件对应的策略类
}
}
@Configuration
@RibbonClient(name = "hello-service", configuration = MyRibbonConfiguration.class)
public class RibbonConfiguration {
}
上一篇:基于python的发送邮件案例
下一篇:Python第十七天 抽象类