自定义ribbon代码:
引入jar包
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
yml
server:
port: 8085
spring:
application:
name: client
#eureka:
# client:
# service-url:
# defaultZone: http://localhost:10000/eureka
eureka:
client:
enabled: false
#定义一个serverList给我们做负载均衡
##格式{serviceId}:ribbon:listOfservers
hello-server:
ribbon:
listOfServers: localhost:8082,localhost:8083
@SpringBootApplication
@RestController
@RibbonClients(
@RibbonClient(value = "hello-server")
)
public class CosumerApplication {
@Autowired
RestTemplate restTemplate;
@Autowired
LoadBalancerClient loadBalancerClient;
public static void main(String[] args) {
SpringApplication.run(CosumerApplication.class, args);
}
@GetMapping("/index")
public String index(){
ServiceInstance serviceInstance = loadBalancerClient.choose("hello-server");
String ip = serviceInstance.getHost();
int port = serviceInstance.getPort();
return restTemplate.getForObject("http://"+ip+":"+port+"index",String.class,"")+port;
}
}