我是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