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

feign

上级 675fe133
......@@ -32,6 +32,10 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
......
......@@ -3,9 +3,11 @@ package com.xcloud.galaxy.movieservice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class MovieServiceApplication {
public static void main(String[] args) {
......
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;
/**
* @Description
* @Author wangjian
* @Date 2019-07-09 15:55
*/
@Configuration
public class WebConfig {
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
}
package com.xcloud.galaxy.movieservice.controller;
import com.xcloud.galaxy.movieservice.feign.UserServiceFeignClient;
import com.xcloud.galaxy.userservice.entity.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
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
......@@ -24,67 +20,18 @@ import java.util.stream.Collectors;
@Slf4j
public class MovieController {
@Autowired
private RestTemplate restTemplate;
@Autowired
private DiscoveryClient discoveryClient;
private UserServiceFeignClient userServiceFeignClient;
@GetMapping(value = "/index")
public User index() {
User user = restTemplate.getForObject("http://user-service/users/1", User.class);
User user = userServiceFeignClient.findTop(1);
return user;
}
// @formatter:off
/**
*
*
* [
* {
* "serviceId": "user-service",
* "host": "192.168.6.239",
* "port": 8071,
* "secure": false,
* "metadata": {
* "nacos.instanceId": "192.168.6.239#8071#DEFAULT#DEFAULT_GROUP@@user-service",
* "nacos.weight": "1.0",
* "nacos.cluster": "DEFAULT",
* "nacos.healthy": "true",
* "preserved.register.source": "SPRING_CLOUD"
* },
* "uri": "http://192.168.6.239:8071",
* "scheme": null,
* "instanceId": null
* },
* {
* "serviceId": "user-service",
* "host": "192.168.6.239",
* "port": 8070,
* "secure": false,
* "metadata": {
* "nacos.instanceId": "192.168.6.239#8070#DEFAULT#DEFAULT_GROUP@@user-service",
* "nacos.weight": "1.0",
* "nacos.cluster": "DEFAULT",
* "nacos.healthy": "true",
* "preserved.register.source": "SPRING_CLOUD"
* },
* "uri": "http://192.168.6.239:8070",
* "scheme": null,
* "instanceId": null
* }
* ]
*
* @return
*
*/
// @formatter:on
@GetMapping(value = "/discovery")
public List<ServiceInstance> discovery() {
List<ServiceInstance> instances = discoveryClient.getInstances("user-service");
return instances;
@GetMapping(value = "/list")
public List<User> list() {
return userServiceFeignClient.list();
}
}
package com.xcloud.galaxy.movieservice.feign;
import com.xcloud.galaxy.userservice.entity.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
/**
* @Description
* @Author wangjian
* @Date 2019-07-10 12:33
*/
@FeignClient(name = "user-service")
public interface UserServiceFeignClient {
@GetMapping(value = "/users")
List<User> list();
@GetMapping(value = "/users/{id}")
User findTop(@PathVariable(value = "id") Integer id);
}
......@@ -11,4 +11,13 @@ spring:
ribbon:
eager-load:
enabled: true
clients: user-service
\ No newline at end of file
clients: user-service
logging:
level:
com.xcloud.galaxy.movieservice.feign: debug
feign:
client:
config:
user-service:
loggerLevel: full
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论