spring cloud + nacos + feign调用
//by yan 20211119
需求:
簡單建個項目,用來測試調用注冊在nacos的服務接口。
步驟:
idea -> new project-> Spring Initializr
踩坑:
1、開始是maven包引入報錯。修改各種配置 pom repositories 、 maven 配置等,有時還要刪除項目.idea重啟idea。總結大多是maven的版本問題。最后都是使用idea 自帶版本 “Bundled (Maven 3)” 就ok。
2、spring boot 和spring cloud 版本問題
spring boot 和spring cloud 版本必須對應。這個其實用Spring Initializr向導創建的項目,生成的pom.xml就可保證這點了。
3、SpringCloud OpenFeign報錯:No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer?
原因:
由于Spring Cloud Feign在Hoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer會報錯.
解決:
加入spring-cloud-loadbalancer依賴 并且在nacos中排除ribbon依賴,不然loadbalancer無效
4、只是簡單測試調用的項目,nacos config可以不用配置。配置了會受nacos配置中心的配置影響。
org.springframework.cloud spring-cloud-loadbalancer com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery ${nacos.version} com.netflix.ribbon ribbonpom.xml 全內容:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.7</version><!--<version>2.0.9.RELEASE</version>--><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo2</artifactId><version>0.0.1-SNAPSHOT</version><name>demo2</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version><spring-cloud.version>2020.0.4</spring-cloud.version><!--<spring-cloud.version>Finchley.SR4</spring-cloud.version>--><!--nacos test--><nacos.serverName>oa-server</nacos.serverName><spring.cloud.nacos.discovery.server-addr>172.25.70.1:18848,172.25.70.10:18848,172.25.70.9:18848</spring.cloud.nacos.discovery.server-addr><spring.cloud.nacos.discovery.cluster-name>default</spring.cloud.nacos.discovery.cluster-name><spring.cloud.nacos.discovery.group>DEFAULT_GROUP</spring.cloud.nacos.discovery.group><spring.cloud.nacos.config.server-addr>172.25.70.1:18848,172.25.70.10:18848,172.25.70.9:18848</spring.cloud.nacos.config.server-addr><spring.cloud.nacos.config.file-extension>properties</spring.cloud.nacos.config.file-extension><spring.cloud.nacos.config.group>DEFAULT_GROUP</spring.cloud.nacos.config.group><!--lv_3_id--><spring.cloud.nacos.discovery.namespace>docusign</spring.cloud.nacos.discovery.namespace><spring.cloud.nacos.discovery.port>8990</spring.cloud.nacos.discovery.port><!--0.1.1.RELEASE 2.0.2.RELEASE 2.2.0.RELEASE 2021.1--><nacos.version>2.0.2.RELEASE</nacos.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-loadbalancer</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>${nacos.version}</version><exclusions><exclusion><groupId>com.netflix.ribbon</groupId><artifactId>ribbon</artifactId></exclusion></exclusions></dependency><!--<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>${nacos.version}</version></dependency>--><!-- <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId><version>${nacos.version}</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>${nacos.version}</version></dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.14.RELEASE</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.60</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.10</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.10.3</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!--<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency>--></dependencies></dependencyManagement><repositories><repository><id>aliyun maven</id><url>http://maven.aliyun.com/nexus/content/repositories/central/</url></repository></repositories><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.example.demo2.Demo2Application</mainClass></configuration></plugin><plugin><artifactId>maven-resources-plugin</artifactId><configuration><encoding>utf-8</encoding><useDefaultDelimiters>true</useDefaultDelimiters></configuration></plugin></plugins></build></project>總結
以上是生活随笔為你收集整理的spring cloud + nacos + feign调用的全部內容,希望文章能夠幫你解決所遇到的問題。