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、訪問運行結果


 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM