我正在尝试从Ribbon迁移到客户端负载均衡器,并具有以下配置:
id 'org.springframework.boot' version '2.4.6'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
'springCloudVersion', "2020.0.2"
application.properties (library-service)
user-service.ribbon.listOfServers=http://localhost:9091
UserServiceProxy.java
@FeignClient(name="user-service")
@LoadBalancerClient(name="user-service")
interface UserServiceProxy{}
ApplicationClass.java
@EnableFeignClients(basePackages = "com.library.service")
public class LibraryServiceApplication {}
我不明白为什么在尝试使用代理访问用户服务时会出现以下错误。有人能帮我吗?
There was an unexpected error (type=Internal Server Error, status=500). [503] during [GET] to [http://user-service/users/10] [UserServiceProxy#getUserById(Long)]: [Load balancer does not contain an instance for the service user-service]
Ask1(如果没有Eureka服务器,我们是否可以使用客户端负载平衡器?正如我们在早期版本中使用Ribbon和false一样。
感谢您的帮助!!
是的,您可以将Spring Cloud LoadBalancer与Eureka一起使用,但不能将其与Ribbon特定的属性一起使用。您可以在文档中看到,在这种情况下可以使用SimpleDiscoveryClient
而不是ribbon.listOfServers
。