OpenFeign和RestTemplate调用NACOS服务访问接口

OpenFeign调用NACOS服务访问接口
1、创建order-consumer-demo消费服务,引入POM包
(可以是其他服务应该,本文直接创建的order消费服务demo)


<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
    <version>2.2.6.RELEASE</version>
</dependency>
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.2.RELEASE</version>
</dependency>

 

2、yml配置NACOS系统信息


spring:
  application:
    name: order-consumer-demo

  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: public

 

3、新增openfeign接口和fallback异常处理类。


@FeignClient(name = "order-service-demo", fallback = OrderServiceDemoFeignClientFallback.class)
public interface OrderServiceDemoFeignClient {

    @GetMapping("/demo/test")
    String test();
}

 

public class OrderServiceDemoFeignClientFallback implements OrderServiceDemoFeignClient {

    @Override
    public String test() {
        return "error";
    }
}

  

4、代码配置


新增服务注册“@EnableDiscoveryClient”和openfeign注解“@EnableFeignClients”。

 

5、运行应用


访问成功结果:

 

 访问失败结果(如:服务端异常或者服务不在线):

 

RestTemplate调用NACOS服务访问接口

1、DemoApplication.java类新增代码


@LoadBalanced
@Bean
public RestTemplate restTemplate() {
    return new RestTemplate();
}

 

2、DemoController.java类新增代码


@GetMapping( value = "testRestTemplate")
public String getRestTemplateTest()
{
    //通过的负载均衡接口获取服务实例信息
    ServiceInstance serviceInstance = loadBalancerClient.choose("order-service-demo");
    //直接写url也可以 http://order-service-demo/demo/test
    String url = "http://" + serviceInstance.getServiceId() + ":" + serviceInstance.getPort() + "/demo/test";
    String result = restTemplate.getForObject(url, String.class);
    return  "【RestTemplate】" + result;
}

 

3、访问运行结果


 

 


 

posted on 2021-01-24 08:18  barryzhou  阅读(2793)  评论(0编辑  收藏  举报

导航