小编jmd*_*nis的帖子

用丝带的春天云彩不忽略下来服务器

我是eureka客户端负载均衡的关注指南:

https://spring.io/guides/gs/client-side-load-balancing/

但是当我有3个服务器实例后,我关闭了其中任何一个,我得到了连接拒绝异常.客户端仍在尝试向这些服务器发送请求,而不是忽略ping失败的服务器.当客户端尝试向这些服务器发送请求时,我会在这些服务器被ping时遇到异常并且出现相同的异常.似乎功能区正在通过配置中列出的所有服务器执行某种盲目的循环,它忽略了我关闭的服务器.

application.yml

spring:
  application:
    name: user

server:
  port: 8888

say-hello:
  ribbon:
    eureka:
      enabled: false
    listOfServers: localhost:8090,localhost:9092,localhost:9999
    ServerListRefreshInterval: 15000
Run Code Online (Sandbox Code Playgroud)

SayHelloConfiguration.java

package hello;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;

import com.netflix.client.config.IClientConfig;
import com.netflix.loadbalancer.IPing;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.PingUrl;
import com.netflix.loadbalancer.AvailabilityFilteringRule;

public class SayHelloConfiguration {

    @Autowired
    IClientConfig ribbonClientConfig;

    @Bean
    public IPing ribbonPing(IClientConfig config) {
        return new PingUrl();
    }

    @Bean
    public IRule ribbonRule(IClientConfig config) {
        return new AvailabilityFilteringRule();
    }

}
Run Code Online (Sandbox Code Playgroud)

UserApplication.java

package hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; …
Run Code Online (Sandbox Code Playgroud)

load-balancing spring-boot spring-cloud spring-cloud-netflix

8
推荐指数
1
解决办法
2989
查看次数