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、访问运行结果

