nacos 是用于构建、交付和管理微服务的平台,支持服务发现与配置管理。

Feign 是 Java 语言的 HTTP 客户端,通过接口与注解的方式来创建一个 Feign。

引入依赖

因为nacos默认使用的均衡负载组件为ribbon,而OpenFeign最新版本默认使用的是spring cloud loadbalancer,所以我们需要排除ribbon依赖,并引入spring cloud loadbalancer依赖。

因为nacos支持配置管理,所以需要引入spring cloud starter bootstrap依赖。

<!-- pom.xml -->
<properties><java.version>1.8</java.version><spring.boot.version>2.4.2</spring.boot.version><spring.cloud.version>3.0.1</spring.cloud.version>
</properties>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>${spring.boot.version}</version></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2021.1</version><exclusions><!--//丢弃ribbon--><exclusion><groupId>com.netflix.ribbon</groupId><artifactId>ribbon</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>${spring.cloud.version}</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId><version>${spring.cloud.version}</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId><version>${spring.cloud.version}</version></dependency>
</dependencies>

在使用nacos时需要注意nacos及其依赖的版本。

  1. 通过依赖分析,发现nacos的2021.1版本引入的spring cloud版本为3.0.1,所以openfeign、bootstrap、loadbalancer等spring cloud组件的版本也需要为3.0.1。版本不符合的话会因冲突而报错。
  2. 因为nacos的2021.1版本支持的spring boot版本为2.4.2,所以引入的spring boot组件的版本也需要为2.4.2。具体版本可查看版本说明

配置文件

nacos需要配置nacos服务端的地址。

spring:application:name: testcloud:nacos:discovery:server-addr: http://localhost:8848loadbalancer:ribbon:# 关闭ribbonenabled: false

注意需要配置 server.cloud.loadbalancer.ribbon.enabledfalse,否则会报错Load balancer does not contain an instance for the service

创建Feign客户端

为启动类添加 @EnableFeignClients注解启用Feign。

@SpringBootApplication
@EnableFeignClients
public class TestApplication {public static void main(String[] args) {SpringApplication.run(TestApplication.class, args);}}

创建Feign接口:

@FeignClient(value = "center",contextId = "app")
public interface AppFeignService {//配置请求地址与请求方式@GetMapping("/app/list")List<App> list();
}

@FeignClient注解:

  1. value 属性:同 name 属性。服务名称,一般配置为微服务名。必须配置。
  2. contextId:可选。取代 name 属性作为bean名。如果不配置的话,每个接口配置的 name 不能相同。

总结

总的来说,继承nacos和feign比较简单,使用起来也很简单,需要注意只有nacos的版本问题。

参考

  1. Nacos
  2. GitHub - OpenFeign/feign: Feign makes writing java http clients easier
  3. NACOS注册中心,Load balancer does not have available server for client_如刀割热的博客-CSDN博客

系统集成Nacos和Feign相关推荐

  1. nacos的feign报错Error creating bean with name ‘configurationPropertiesBeans‘ defined in class path reso

    nacos的feign报错Error creating bean with name 'configurationPropertiesBeans' defined in class path reso ...

  2. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

  3. 5.Spring Cloud Alibaba教程:Nacos整合Feign

    概述 Feign是一个声明式的http客户端.使用Feign只需要创建接口并加上对应的注解,就可以实现类似RestTemplate方式的调用,只是它将底层的http请求代码隐藏起来.另外,Feign默 ...

  4. SpringCloudSpringCloud Alibaba、微服务架构、网站架构演变过程、Nacos、Feign远程调用、Load Balancer负载均衡、Sentinel限流、Hystriy

    什么是微服务? 微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信.这些服务围绕业务能力来划分,并通过自动化部署机制来独立 ...

  5. spring cloud整合feign和nacos报错:No Feign Client for loadBalancing defined. Did you forget to include

    Did you forget to include spring-cloud-starter-loadbalancer 问题描述 项目环境 解决方案 1.引入eureka依赖--无效 2.降低spri ...

  6. Spring Cloud Alibaba源码 - 16 Nacos 注册中心源码解析

    文章目录 Nacos & Ribbon & Feign 核心微服务架构图 Nacos核心功能 源码下载 & 启动 [standalone模式] [cluster模式] Naco ...

  7. feign整合sential,Feign中使用Sentinel熔断器防止服务雪崩

    服务故障雪崩效应 在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以通过 RPC 相互调用,在 Spring Cloud 中可以用 RestTemplate + LoadBalanceC ...

  8. SpringCloud微服务:阿里开源组件Nacos,服务和配置管理

    源码地址:GitHub·点这里||GitEE·点这里 一.阿里微服务简介 1.基础描述 Alibaba-Cloud致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用微服务的必需组件,方便开 ...

  9. 在学习SpringCloud时Feign远程调用时出现的问题

    问题: nacos没开 2022-12-20 09:55:17.554 ERROR 24224 - [ main] c.a.c.n.registry.NacosServiceRegistry : na ...

  10. Spring cloud 2020 gateway nacos 出现503的情况

    Spring cloud 2020 gateway nacos 出现503的情况 参考https://blog.csdn.net/weixin_39233623/article/details/121 ...

最新文章

  1. 在写游戏时钟类时,应确保时钟的计算是以某个固定的CPU为标准的
  2. 关于DiscuzNT 1.0
  3. android layout background,Android LinearLayout Gradient Background
  4. 【数据库系统概论】考研第三部分重点分析【3.1】
  5. MFC标签页控件的使用
  6. 基于nbu oj c语言答案,Just oj 2018 C语言程序设计竞赛(高级组)F:Star(结构体排序+最小生成树)...
  7. 阿里云ESC服务器数据快速转移至轻量应用服务器
  8. 面试必备:CAS无锁机制
  9. Seata 与 Nacos Config配置中心整合_03
  10. 基于zookeeper(集群)+LevelDB的ActiveMq高可用集群安装、配置、测试
  11. 基因表达式编程的任务指派问题求解算法设计与实现
  12. 阿拉伯数字 - 书法 - 详解
  13. Input length must be multiple of 8 when decrypting with padded cipher
  14. Vue3 Suspense 组件
  15. 路由器总是有信号无网络连接到服务器,路由器有信号没网络怎么回事?路由器没网络的解决方案...
  16. 论文翻译:LP-3DCNN: Unveiling Local Phase in 3D Convolutional Neural Networks
  17. Tecnomatix plant simulation 进阶--生产系统仿真:Plant Simulation应用教程
  18. 三年沉淀,Tuke3发布
  19. 爬取正方教务管理系统获取学生信息
  20. “狼来了”的VR风,占领不了的客厅

热门文章

  1. JAVA如何选中一行上移_js操作table中tr的顺序实现上移下移一行的效果
  2. c语言中十进制与十六进制转换_二进制、八进制、十进制、十六进制数据转换...
  3. 蓝桥杯2019年第十届C/C++省赛C组第四题-质数
  4. wget下载命令使用说明
  5. rk3399_android7.1添加个驱动且加上宏控编译
  6. 登录注册页面(连接MySQL8.0.15版本)
  7. 假期周进度总结(三)
  8. SpringMVC【开发Controller】详解
  9. Longhorn的糟糕体验!
  10. web安全day27:linux下调整文件及目录权限