Idea搭建SpringCloud(四)------利用Feign实现负载均衡
为什么会出现Feign?负载均衡之前不是有Ribbon了吗?
我们之前实现的负载均衡是使用的Ribbon+RestTemplate,在controller中使用RestTemplate根据url去访问服务提供者,而通常我们是在controller中调用我们声明好的service实例去调用我们的逻辑,这样就不符合我们平时面向编程的规范了,所以feign的出现就是解决这个规范问题的。
我们还是基于之前的项目,新建名称为eureka-server-consumer-feign的module,在pom.xml加上feign,ribbon和eureka的依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-config</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-feign</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>
新建service包,在里面新建ITestService接口,加上@FeignClient注解。其中name属性为该service是调用哪一组服务提供者的。
@FeignClient(name = "EUREKA-SERVER-PROVIDER")
public interface ITestService {@RequestMapping("/provider/test")String test();
}
controller中引入ITestService:
@RestController
public class ConsumerController {@Autowiredprivate ITestService iTestService;@RequestMapping("/consumer/test3")public String test3(){return iTestService.test();}}
启动类,加上@EnableFeignClients注解,@EnableEurekaClient注解,@EnableDiscoveryClient注解:
@SpringBootApplication
@EnableFeignClients
@EnableEurekaClient
@EnableDiscoveryClient
public class EurekaServerConsumerFeignApplication {public static void main(String[] args) {SpringApplication.run(EurekaServerConsumerFeignApplication.class, args);}}
配置文件application.yml:
server:port: 80eureka:client:register-with-eureka: falseservice-url:defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/,http://localhost:7003/eureka/
启动Eureka集群7001,7002和7003,服务提供者8001,8002和8003,以及我们上面的消费者feign
结果发现,利用feign也成功实现了负载均衡,其实feign中就是集成了Ribbon的特性。
Idea搭建SpringCloud(四)------利用Feign实现负载均衡相关推荐
- SpringCloud集群的搭建,分布式的实现,负载均衡的几种方式,路由,页面监听
SpringCloud 服务注册与发现--Netflix Eureka 负载均衡: 客户端负载均衡--Netflix Ribbon 服务端负载均衡:--Feign(其也是依赖于Ribbon,只是将调用 ...
- 虚拟机 搭建LVS + DR + keepalived 高可用负载均衡
一:环境说明: LVS-DR-Master: 10.3.0.82 LVS-DR-Backup: 10.3.0.70 VIP: 10.3.0. ...
- springcloud 实现反向代理和负载均衡
springcloud 实现反向代理和负载均衡 1. 搭建注册中心,路由服务zuul,两个服务端 参考我的上一篇博客 springcloud项目搭建 注意两个服务端服务名称要相同,端口不能相同配置如下 ...
- SpringCloud(三)之Feign实现负载均衡的使用
一 点睛 Feign是Netflix开发的声明式.模板化的HTTP客户端, Feign可以帮助我们更快捷.优雅地调用HTTP API. 在Spring Cloud中,使用Feign非常简单--创建一个 ...
- SpringCloud系列五:Ribbon 负载均衡(Ribbon 基本使用、Ribbon 负载均衡、自定义 Ribbon 配置、禁用 Eureka 实现 Ribbon 调用)...
声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:Ribbon 负载均衡 2.具体内容 现在所有的服务已经通过了 Eureka 进行了注册,那么使用 Eureka 注册 ...
- 利用Nginx实现负载均衡(反向代理)完全详解
1.常见负载均衡的方式(概念普及) [1]用户手动选择 例如我们玩游戏,服务器会显示当前服务器的状态是拥挤.繁忙.还是空闲,然后用户根据自己实际需要,选择自己想去的服务器. 如果服务器人太多(达到上限 ...
- springCloud学习笔记系列(1)-负载均衡Ribbon
2019独角兽企业重金招聘Python工程师标准>>> Ribbon是一个客户端IPC库,在云中经过实战测试.它提供以下功能 负载均衡 容错 异步和反应模型中的多协议(HTTP,TC ...
- JavaEE进阶知识学习-----SpringCloud(六)Ribbon负载均衡
Ribbon负载均衡 Ribbon概述 Spring Cloude Ribbon是基于Netfilx Ribbon实现的一套客户端 负载均衡的工具,简单说,Ribbon是Netfilix发布的开源项目 ...
- 利用Nginx做负载均衡
最近正在研究Nginx,Nginx作为反向代理服务器,可以对Web服务器提供加速,并且具有负载均衡的功能. 首先我要在官网下载Nginx(http://nginx.org/en/download.ht ...
- SpringCloud源码:Ribbon负载均衡分析
本文主要分析 SpringCloud 中 Ribbon 负载均衡流程和原理. SpringCloud版本为:Edgware.RELEASE. 一.时序图 和以前一样,先把图贴出来,直观一点: 二.源码 ...
最新文章
- mysql表情符号变为_mysql Emoji表情字符集转换
- VC2010 编译问题
- docker privileged 权限 参数
- Spring Profiles example--转载
- .NET代码编写规范 整理
- 算法的封装与切换——策略模式
- C# -- 文件的压缩与解压(GZipStream)
- .NET平台4.0 发布网站流程及出错总结
- LeetCode-978:最长湍流子数组
- Jquery.Validation表单验证
- jsf tree组件_JSF表单组件示例教程
- qt设置窗口不在任务栏上显示
- 蓝桥杯 大整数乘法 试题 算法训练 P0805
- angularjs 笔记(1) -- 引导
- bbsmax 2.0 的前世今生,这几年喳喳鸟都在做什么?
- 【游戏开发实战】Unity 2D游戏手指控制移动摄像机镜头和双指缩放镜头(愤怒的小鸟为例)
- OS20190301
- 最好的嵌入式开发板是哪个?
- Docker迁移JIRA
- Esp8266 nodemcu 使用PubSubClient连接阿里云物联网平台
热门文章
- c语言在线读程序,用C语言编写简单程序.doc
- 决定论的科学家认为,自我是大脑的随附现象,自由意志是一种幻觉
- Cannot open D:\Program Files\Anaconda\Scripts\pip3-script.py
- Android studio 报错 Unknown host 'jcenter.bintray.com'
- HashMap中,比较key是否相等为什么要重写equal() 和hashCode()这两个方法?
- 罗马仕php30重量,认真测评 篇三:罗马仕sence8P+两年使用报告
- 好用的小工具系列之---lombok--扔掉傻瓜式书写,精简你的代码,节约你的时间
- Dialogue and Conversational Agents
- Java 重载和重写
- top conference in AI