微服务调用 Feign 与负载均衡|学习笔记(一)

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 快速学习微服务调用 Feign 与负载均衡

开发者学堂课程【5天突破 Spring Cloud微服务调用 Feign 与负载均衡】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/781/detail/13702


微服务调用 Feign 与负载均衡

 

内容介绍:

一.Spring Cloud 声明式调用客户端 Feign

二.客户端调用 Feign 实战

三.负载均衡

 

今天两个主题,一个是负载均衡,一个是微服务调用,在 Spring Boot 里面选接口的话,客户端前端程序也可以调用后端接口,后端接口使用的是比较原始的 HTTP 协议,主要是用的比较多的是 HTTP 协议里面有几个动词,对应的是增删改查,一个用查询一个用提交数据,细分的话可能有超过十种动词,现在比较少比较固定。

今天这个主题从客户端这个角色来做,之前说过一个问题,客户端做出来可以开发微服务比如订单服务,支付服务,账号服务都可以作为微服务架构改造升级的基础,从早期的项目可以迅速的升级成微服务架构,对它做一个功能的改造增强,让它可以和微服务的注册中心进行交互,这是一个基本的条件要求。假设注册中心已经搞好了,微服务也有能力开发,作为微服务架构师,要能够解决各种微服务框架的一些问题,技能水平要高出其他普通的架构师。早期架构师怎么生成、生成之后怎么扩,生成更多层,需要解决这些问题。软件开发领域对架构师要求整体能力比较强,不是单一某一个框架或者某一技术,而是要求整体能力比较强。这门课程以 Spring Boot 的一些旧知识作为迭代基础,微服务后期也需要链数据库等。


一.Spring Cloud 声明式调用客户端 Feign

(一)Spring Cloud 调用方 Feign

1.调用方,简化微服务 API 调用

2. Feign 是一种声明式、模板化的 HTTP 客户端

3.简化 HTTP 客户端开发

4.只需要创建一个接口+@注解

5. Feign 注解和 JAX-RS 注解

6. Feign 支持可插拔的编码器和解码器

7. Feign 默认集成了 Ribbon,并和 Eureka 结合

8. Eclipse 或者 IDEA 实战

对接技术已经讲解过了,对接难度也会降低,因为可以把之前那些代码进行升级改造,很快的去对接数据库,对接缓存,和其他的微服务调用整合。早期也贡献了一个比较有意思的叫 Feign,主要解决微服务调用的问题。

如果自己写代码的话相对来说构造需要一些请求发给服务端,实际上是比较复杂的比较难操作的,而这里面为了解决这个问题,简化了客户端的开发,客户端不一定是来自网页的形式,有可能是一个微服务调用另一个微服务,所以出现了 Feign 这样的一个组件来完成任务工作。简单体现在从 Spring Boot 开始整个开发工作越来越傻瓜化,明显的一个标志就是可以通过使用简单的注解去做注册中心,实现客户端的调用,绝大多数通过注解实现。比较复杂的就是有很多参数需要注意。

负载均衡其实是作为客户端组件有一个叫 Ribbon,它已经实现了一些默认的简单的负载均衡策略,这些算法相比较来说没有其他一些专业代理程序功能强大,也会遇到更强大功能场景的弱点,可以拓展了解一下差异。

 

二.客户端调用 Feign 实战

(一)Feign 调用者实战

.https:// start.spring.io/在线创建

.Eureka Server

.Eureka Client+Feign

.https://github.com/spring-cloud-samples/feign-eureka

.https://github.com/spring-cloud-samples/eureka

.mvn package 打包

要做客户端调用的话,通过 Java 程序调用微服务后台,第一要解决调用问题,发送请求。麻烦的是后端的集群,是动态的变化的,状态在不停变化的情况,目前可能十台,过段时间就一百台了,集群的数量是不确定的。所以对客户端来说,如果这些服务放在客户端代码里面也不现实,需要一个技术来解决注册中心的交互并且解决调用问题。作为客户端要调用后端微服务,前提先找注册中心,需要一个叫 Eureka Client 的组件来和注册中心打交道,这个技术是比较成熟的,后期有些公司也会改造该技术。

对 Eureka Client 代码进行改造,基本就完成了和注册中心交互、调用的一个工作。现在很多公司内部

使用的微服务组件很多都是开源技术或者是开源技术封装的,做了一些改动增强,版本基本上都相似。

(二)Spring Cloud 调用者配置注解

image.png对于之前的项目,有些东西也可以利用起来,可以使用之前与注册中心交互的一些配置,完成调用要知道有一个发送请求的技术 Feign,如果技术比较熟练,可以拆后端 API 的地址,演示比较简单,可以用 get提交订单数据,也可以用浏览器进行测试。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
6月前
|
存储 运维 安全
阿里云目前活动内云服务器可以买3年吗?可选实例规格、配置及价格参考
在目前阿里云的活动中,经济型e实例支持3年购买,配置涵盖2核4G、4核8G等,例如2核4G 3年1499.40元起,4核8G 3年3249.00元起。采用Intel Xeon Platinum处理器,支持多种处理器内存配比,搭载ESSD Entry云盘,适配中小型网站、开发测试、轻量级应用等场景。
|
7月前
|
运维 安全 数据安全/隐私保护
2025TOP级数字人私有化部署测评:企业选型参考路径
随着数字人深入医疗、金融、政务等核心场景,私有化部署成为企业选型关键。本次测评聚焦国内外主流厂商,对比其私有化能力。集之互动以全链路本地化、数据闭环、0.8秒实时交互,深耕高合规行业;Synthesia主打云端高效视频生成,适合营销培训;D-ID强调隐私安全,支持本地部署。数字人正从“像人”迈向“可管可控”的企业级系统竞争。
384 1
|
6月前
|
数据采集 人工智能 监控
AI 应用软件的开发
AI应用开发遵循AI-SDLC,强调数据闭环与迭代实验:从问题定义、数据工程(占60%-80%)、模型实验,到集成部署与MLOps运营。融合敏捷AI与AI辅助开发,关键在数据质量、MVP验证及安全可解释性。(239字)
如何设置Excel的快捷键?
【10月更文挑战第19天】如何设置Excel的快捷键?
3159 8
|
12月前
|
存储 缓存 资源调度
# Qwen3-8B 的 TTFT 性能分析:16K 与 32K 输入 Prompt 的推算公式与底层原理详解
Qwen3-8B 是通义实验室推出的 80 亿参数大模型,支持最长 32,768 token 上下文,适用于长文本处理场景。通过 FP8 量化、CUDA Kernel 优化及 RoPE 位置编码技术,提升推理效率与稳定性。模型在 16K 输入下 TTFT 约 150-200ms,32K 输入下约 250-300ms,适用于文档摘要与长对话交互。
3190 8
|
Java 数据库连接 Spring
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could
这个错误通常出现在使用Spring Boot进行数据库连接时。错误信息表明Spring Boot未能配置一个DataSource,因为没有指定'url'属性,并且没有发现默认的数据库连接。
6302 0
|
JSON JavaScript 前端开发
springboot中使用knife4j访问接口文档的一系列问题
本文作者是一位自学前端两年半的大一学生,分享了在Spring Boot项目中使用Knife4j遇到的问题及解决方案,包括解决Swagger请求404错误、JS错误等,详细介绍了依赖升级、注解替换及配置修改的方法。
3011 1
|
存储 JSON 物联网
设备管理组件功能介绍
设备管理组件功能介绍
831 2
|
人工智能 自然语言处理 PyTorch
基于openi平台免费华为昇腾910B芯片部署qwen2.5 Instruct 14B大模型
基于OpenI平台和华为昇腾910B芯片,本方案详细介绍了如何免费部署Qwen-2.5 Instruct 14B大模型。涵盖准备工作、模型适配、部署步骤及性能优化等内容,适用于NLP任务部署、本地化适配及实时服务化等多种应用场景。
4888 1
|
SQL Oracle 关系型数据库
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection
2780 0
解决Oracle的状态: 失败 -测试失败: IO 错误: The Network Adapter could not establish the connection