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

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
简介: 快速学习微服务调用 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提交订单数据,也可以用浏览器进行测试。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
3月前
|
缓存 负载均衡 Java
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
文章标题为“OpenFeign的Ribbon负载均衡详解”,是继OpenFeign十大可扩展组件讨论之后,深入探讨了Ribbon如何为OpenFeign提供负载均衡能力的详解。
OpenFeign最核心组件LoadBalancerFeignClient详解(集成Ribbon负载均衡能力)
|
3月前
|
负载均衡 Dubbo 算法
Dubbo服务负载均衡原理
该文章主要介绍了Dubbo服务负载均衡的原理,包括Dubbo中负载均衡的实现位置、为什么需要负载均衡机制、Dubbo支持的负载均衡算法以及随机负载均衡策略的源码分析。
|
6月前
|
负载均衡 算法
SpringCloud&Ribbon负载均衡原理与实践
SpringCloud&Ribbon负载均衡原理与实践
76 3
|
6月前
|
负载均衡 程序员 微服务
【微服务】2、一篇文章详解 Ribbon 负载均衡
【微服务】2、一篇文章详解 Ribbon 负载均衡
114 0
|
6月前
|
负载均衡 算法 Java
SpringCloud - Feign与Ribbon请求负载均衡实践
SpringCloud - Feign与Ribbon请求负载均衡实践
98 0
|
负载均衡 Java 应用服务中间件
微服务技术系列教程(21) - SpringCloud- 负载均衡器Ribbon
微服务技术系列教程(21) - SpringCloud- 负载均衡器Ribbon
119 0
|
负载均衡 Java Nacos
Springcloud服务调用Feign组件以及负载均衡
Springcloud服务调用Feign组件以及负载均衡
|
负载均衡 网络协议 Java
SpringCloud微服务框架03 - Ribbon负载均衡
SpringCloud微服务框架03 - Ribbon负载均衡
129 0
|
负载均衡 网络协议 算法
SpringCloud服务间通信方式(RestTemplate)及负载均衡(Ribbon)
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕 🍅java自学的学习路线:java自学的学习路线
435 0
SpringCloud服务间通信方式(RestTemplate)及负载均衡(Ribbon)
|
负载均衡 网络协议 算法
Ribbon和Feign客户端负载均衡及服务调用
什么时负载均衡?(Loadbalancing)负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。过去所说的负载均衡常指服务端的负载均衡,在客户端和服务器端之间增加负载均衡器来实现。那么,客户端负载均衡是什么?
199 0
Ribbon和Feign客户端负载均衡及服务调用
下一篇
无影云桌面