本文主要是介绍openfeign使用nacos 服务注册方式调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
需要将项目注册到nacos上,openfeign调用时可以依赖nacos上注册的服务名称,直接进行调用,不再需要像openfeign单独使用时,配置 feignClient的url属性.
消费项目
基于openfeign+sentinel的基础上添加如下pom配置
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.2.5.RELEASE</version>
</dependency>
启动类添加
@SpringBootApplication
@EnableFeignClients
@EnableDiscoveryClient
public class NacosConsumerApplication {public static void main(String[] args) {SpringApplication.run(NacosConsumerApplication.class, args);}
}
对应@FeignClient注解需要填写fallback属性。
此时和openfeign单独使用时的唯一区别在于
nacos调用
@FeignClient(value = "server-application",fallback = TestServiceImpl.class) 此时直接value=服务提供者注册到nacos的服务名称即可。
openfeign单独使用
@FeignClient(name = "pay",url = "http://10.21.46.61:8880",fallback = TestServiceImpl.class)
@FeignClient(value = "server-application",fallback = TestServiceImpl.class)
public interface TestService {@GetMapping("/server/getServer")String getPayMent(@RequestParam("s") String s);
}
fallback = TestServiceImpl.class 如下
@Service
public class TestServiceImpl implements TestService {@Overridepublic String getPayMent(String s) {return "报错了!!!!!!";}
}
对应bootstrap.yml配置如下
server:port: 8890spring:profiles:#环境active: devapplication:name: consumer-applicationcloud:nacos:discovery:server-addr: 10.xx.xx.xxx:8848sentinel:transport:#配置sentinel dashboard的地址dashboard: localhost:8080feign:sentinel:enabled: trueclient:config:default:loggerLevel: FULLconnectTimeout: 5000readTimeout: 10000
server端没有启动
server端 启动
这篇关于openfeign使用nacos 服务注册方式调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!