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) 编辑 收藏 举报