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

ThreadLocalRandom

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