当前位置: 首页 > news >正文

02-OpenFeign-微服务接入

1、依赖

由于是spring cloud项目,注意spring-boot、cloud、alibaba的版本兼容性

1.1、父级依赖

<properties><java.version>1.8</java.version><spring-boot.version>2.7.18</spring-boot.version><spring.cloud.version>2021.0.1</spring.cloud.version><spring.cloud.alibaba.version>2021.0.1.0</spring.cloud.alibaba.version>
</properties><dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring.cloud.alibaba.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- SpringBoot 依赖配置 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency>         </dependencies>
</dependencyManagement>

1.2、子服务依赖

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version>
</properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><exclusions><exclusion><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</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></dependencies>

以下全部为调用方配置

2、配置项

启动项配置文件 需要在 bootstrap.yml添加如下内容:

server:port: 8090servlet:context-path: /
spring:application:#nacos 注册时的服务名  name: openprofiles:active: seatacloud:nacos:discovery:# nacos的服务地址,nacos-server中IP地址:端口号server-addr: 192.168.20.113:8848# 保持与下游服务一样的域namespace: cedb1f46-d9ae-43b1-99db-39b245152543group: DEFAULT_GROUP

openfeign的负载均衡策略:

- round-robin:轮询

- least-conne¢tion:最小连接数

- consistent-hashing:一致性HASH

或指定URL

@FeignClient(url = "127.0.0.1:9001",name = "async-feign",contextId = "identity")

2.2、添加注解@EnableFeignClients开启openFeign功能

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class OpenFeignConsumer9006Application{public static void main(String[] args) {SpringApplication.run(OpenFeignConsumer9006Application.class, args);}
}

2.3、新建openFeign接口

value作为调用方服务名,可以用final static 常量代替

// 下游服务注册到nacos的服务名
@FeignClient(value = "user-service")
public interface OpenFeignUserService {// 完整的调用地址,如果下游存在/contextPath 则需要补充@GetMapping("/user/save")String insert() ;
}

3、调用错误问题

1、503[Load balancer does not contain an instance for the service ...]

因为SpringCloud Feign在Hoxton.M2 RELEASED版本之后抛弃了Ribbon,

使用了spring-cloud-loadbalancer,所以我们这里还需要引入spring-cloud-loadbalancer的依赖,否则就会报错

http://www.lryc.cn/news/293243.html

相关文章:

  • 【前端工程化】环境搭建 nodejs npm
  • 在VM虚拟机搭建NFS服务器
  • springboot并mybatis入门启动
  • 什么是单例模式与饿汉式单例模式的区别是什么?
  • 【数据结构】认识数据结构 (通俗解释)
  • C语言——深入理解指针(1)
  • MySQL原理(五)事务
  • 算法学习——华为机考题库4(HJ26 - HJ30)
  • STM32学习笔记(三) —— GPIO点亮LED
  • gRPC使用详解
  • 海康威视有插件、无插件播放;webrtc直播;西瓜视频播放器;mpegts.js直播;flvjs直播
  • 测试工作(新入职)感悟
  • hivesql的基础知识点
  • Linux下的线程操作
  • 机器学习 | 如何利用集成学习提高机器学习的性能?
  • [Python] 什么是PCA降维技术以及scikit-learn中PCA类使用案例(图文教程,含详细代码)
  • npm 淘宝镜像正式到期,更新使用成功
  • python_蓝桥杯刷题记录_笔记_全AC代码_入门2
  • 备战蓝桥杯---数据结构与STL应用(入门4)
  • 2023_12蓝桥杯STEMA 考试 Scratch 中级试卷解析
  • 从编程中理解:大脑中的杏仁核
  • Maven dependency中的scope
  • 代码随想录算法训练营DAY11 | 栈与队列 (2)
  • 【Spring实战】33 Spring Boot3 集成 Nacos 配置中心
  • ElementUI安装与使用指南
  • Opencv——图片卷积
  • 项目安全-----加密算法实现
  • 只用一台服务器部署上线(宝塔面板) 前后端+数据库
  • 《Pandas 简易速速上手小册》第8章:Pandas 高级数据分析技巧(2024 最新版)
  • 计算机网络_1.6.2 计算机网络体系结构分层的必要性