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

