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

feign

上级 675fe133
...@@ -32,6 +32,10 @@ ...@@ -32,6 +32,10 @@
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
......
...@@ -3,9 +3,11 @@ package com.xcloud.galaxy.movieservice; ...@@ -3,9 +3,11 @@ package com.xcloud.galaxy.movieservice;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableFeignClients
public class MovieServiceApplication { public class MovieServiceApplication {
public static void main(String[] args) { 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; package com.xcloud.galaxy.movieservice.controller;
import com.xcloud.galaxy.movieservice.feign.UserServiceFeignClient;
import com.xcloud.galaxy.userservice.entity.User; import com.xcloud.galaxy.userservice.entity.User;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; 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.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
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
...@@ -24,67 +20,18 @@ import java.util.stream.Collectors; ...@@ -24,67 +20,18 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class MovieController { public class MovieController {
@Autowired
private RestTemplate restTemplate;
@Autowired @Autowired
private DiscoveryClient discoveryClient; private UserServiceFeignClient userServiceFeignClient;
@GetMapping(value = "/index") @GetMapping(value = "/index")
public User index() { public User index() {
User user = restTemplate.getForObject("http://user-service/users/1", User.class); User user = userServiceFeignClient.findTop(1);
return user; return user;
} }
// @formatter:off @GetMapping(value = "/list")
/** public List<User> list() {
* return userServiceFeignClient.list();
*
* [
* {
* "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;
} }
} }
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);
}
...@@ -12,3 +12,12 @@ ribbon: ...@@ -12,3 +12,12 @@ ribbon:
eager-load: eager-load:
enabled: true enabled: true
clients: user-service clients: user-service
logging:
level:
com.xcloud.galaxy.movieservice.feign: debug
feign:
client:
config:
user-service:
loggerLevel: full
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论