Spring-cloud微服务实战【六】:接口服务feign
在上一篇文章中,我们使用了ribbon进行负载均衡,但是仔细思考一下,我们的请求封装和调用以及结果的返回都是我们自己编码完成的,如果需要调用的接口很多,那么无疑开发量是比较大的,那有没有比较好的方式呢?答案就是feign.让我们先通过代码来看一下feign的使用:
首先,我们需要复制一份consumer的代码,并且重命名为dhp-micro-service-consumer-feign:

然后修改代码如下:
1.新增maven依赖:

2.修改代码:
首先新增一个feign的接口:

另外,如果要通过Feign进行远程调用,依然需要安全服务提供方的认证问题,所幸feign里面已经集成了这块功能:

此时,准备工作已经做好了,修改controller的代码:

然后启动起来试一试:


说明feign已经继承成功,可以看到,和之前的代码量相比,使用feign之后代码已经简洁许多了,并且如果producer启动了集群,可以发现feign自带负载均衡功能,因为feign也集成了ribbon,我们用两张图来对比一下:
在没有集成feign之前,我们是直接走ribbon:

集成feign之后,我们是走feign:

我们可以新增ribbon策略试一试:

再次启动,会发现负载均衡规则是随机访问了.
数据压缩
我们已经知道,feign最主要的作用就是将Rest服务的信息转化为接口,这其中还有其他的一些地方应该要考虑,比如:数据的压缩.Rest协议更多的传输的是文本,JSON或者XML,如果用户发送的请求很大,这个时候有必要对数据进行压缩处理,feign本身提供了对压缩的支持:

介绍完了feign,下一篇文章,我们会介绍服务熔断与降级hystrix,敬请期待.
本文的GitHub地址
本文由博客一文多发平台 OpenWrite 发布!
Spring-cloud微服务实战【六】:接口服务feign的更多相关文章
- Spring Cloud 微服务实战笔记
Spring Cloud 微服务实战笔记 微服务知识 传统开发所有业务逻辑都在一个应用中, 开发,测试,部署随着需求增加会不断为单个项目增加不同业务模块:前端展现也不局限于html视图模板的形式,后端 ...
- Spring Cloud微服务实战阅读笔记(一) 基础知识
本文系<Spring Cloud微服务实战>作者:翟永超,一书的阅读笔记. 一:基础知识 1:什么是微服务架构 是一种架构设计风格,主旨是将一个原本独立的系统拆分成多个小型服务 ...
- spring cloud微服务实战教程/pdf/视频/百度云资源
资源站:http://www.supan.vip 点击进入直接查找资源: http://www.supan.vip/spring%20cloud微服务实战 <Spring Cloud微服务实战& ...
- Spring Cloud 微服务实战——nacos 服务注册中心搭建(附源码)
作为微服务的基础功能之一的注册中心担任重要的角色.微服务将单体的服务拆分成不同的模块下的服务,而不同的模块的服务如果进行通信调用呢?这就需要服务注册与发现.本文将使用阿里开源项目 nacos 搭建服务 ...
- Spring cloud微服务实战——基于OAUTH2.0统一认证授权的微服务基础架构
https://blog.csdn.net/w1054993544/article/details/78932614
- 微服务实战(六):选择微服务部署策略 - DockOne.io
原文:微服务实战(六):选择微服务部署策略 - DockOne.io [编者的话]这篇博客是用微服务建应用的第六篇,第一篇介绍了微服务架构模板,并且讨论了使用微服务的优缺点.随后的文章讨论了微服务不同 ...
- 微服务实战(四):服务发现的可行方案以及实践案例 - DockOne.io
原文:微服务实战(四):服务发现的可行方案以及实践案例 - DockOne.io 这是关于使用微服务架构创建应用系列的第四篇文章.第一篇介绍了微服务架构的模式,讨论了使用微服务架构的优缺点.第二和第三 ...
- SpringCloud Alibaba微服务实战三 - 服务调用
导读:通过前面两篇文章我们准备好了微服务的基础环境并让accout-service 和 product-service对外提供了增删改查的能力,本篇我们的内容是让order-service作为消费者远 ...
- 微服务实战(一):微服务架构的优势与不足 - DockOne.io
原文:微服务实战(一):微服务架构的优势与不足 - DockOne.io [编者的话]本文来自Nginx官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战 ...
- 微服务实战(三):深入微服务架构的进程间通信 - DockOne.io
原文:微服务实战(三):深入微服务架构的进程间通信 - DockOne.io [编者的话]这是采用微服务架构创建自己应用系列第三篇文章.第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使 ...
随机推荐
- springBoot中使用使用junit测试文件上传,以及文件下载接口编写
本篇文章将介绍如何使junit在springBoot中测试文件的上传,首先先阅读如何在springBoot中进行接口测试. 文件上传操作测试代码 import org.junit.Before; im ...
- 2018-9-30-C#-传入-params-object-长度
title author date CreateTime categories C# 传入 params object 长度 lindexi 2018-09-30 18:33:20 +0800 201 ...
- 【u035】奶牛的电信
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方 ...
- P3810 陌上花开 CDQ分治
陌上花开 CDQ分治 传送门:https://www.luogu.org/problemnew/show/P3810 题意: \[ 有n 个元素,第 i 个元素有 a_i. b_i. c_i 三个属性 ...
- delphi 子窗体最大化
procedure TForm2.FormCreate(Sender: TObject);begin perform(WM_SIZE,SIZE_MAXIMIZED,0);end; http://blo ...
- DataTable转成实体列表 和 DataRow转成实体类
#region DataTale转为实体列表 /// <summary> /// DataTale转为实体列表 /// </summary> /// <typeparam ...
- 超简单本地mock假数据测试,模拟后台数据返回必杀技
温馨提示:急性子可以直接拉到最后观看方法步骤. 什么是mock? mock就是在开发过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试开发的方法. 使用mock有什么好处? ...
- 【原创】(十四)Linux内存管理之page fault处理
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- 洛谷训练新手村之“BOSS战-入门综合练习2”题解
P1426 小鱼会有危险吗 题目链接:https://www.luogu.com.cn/problem/P1426 题目大意: 有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每 ...
- c++数字和字符之间的转化
关于C++中数与字符之间的转化 在c++中我们经常遇到需要把一个数变成字符,或者把字符变为一个数,c++中没有直接的转化函数,故我们需要自己去写函数去转化,这里我将介绍两种比较简单的方法: 法一: s ...