提交 c81ef57f authored 作者: 王健's avatar 王健

ThreadLocalRandom

上级 0241a2f9
package com.xcloud.galaxy.movieservice.config;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
......@@ -15,7 +14,6 @@ public class WebConfig {
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
......
......@@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
import java.util.stream.Collectors;
/**
* @Description
......@@ -32,12 +34,18 @@ public class MovieController {
@GetMapping(value = "/index")
public User index() {
User user = restTemplate.getForObject("http://user-service/users/1", User.class);
List<ServiceInstance> instances = discoveryClient.getInstances("user-service");
List<String> urls = instances.stream().map(instance -> instance.getUri().toString()).collect(Collectors.toList());
int anInt = ThreadLocalRandom.current().nextInt(urls.size());
String url = urls.get(anInt);
User user = restTemplate.getForObject(url + "/users/1", User.class);
return user;
}
// @formatter:off
/**
*
*
* [
* {
* "serviceId": "user-service",
......@@ -72,13 +80,15 @@ public class MovieController {
* "instanceId": null
* }
* ]
*
* @return
*
*/
// @formatter:on
@GetMapping(value = "/discovery")
public List<ServiceInstance> discovery() {
List<ServiceInstance> instances = discoveryClient.getInstances("user-service");
return instances;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论