Ribbon是Netflix公司开源的一个负载均衡的项目,是一个基于 HTTP、TCP的客户端负载均衡器.

什么是负载均衡?

负载均衡是微服务架构中必须使用的技术,通过负载均衡来实现系统的高可用、集群扩容等功能。负载均衡可通过
硬件设备及软件来实现,硬件比如:F5、Array等,软件比如:LVS、Nginx等。

常用的负载均衡算法有: 轮循、随机、加权轮循、加权随机、地址哈希等方法。

上面的都是服务端负载均衡,客户端负载均衡与服务端负载均衡的区别在于客户端要维护一份服务列表,Ribbon从
Eureka Server获取服务列表,Ribbon根据负载均衡算法直接请求到具体的微服务,中间省去了负载均衡服务器。

1. 导入Ribbon依赖

<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId><version>1.3.6.RELEASE</version>
</dependency>

2. application.yml中配置ribbon参数

ribbon:MaxAutoRetries: 2 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试MaxAutoRetriesNextServer: 3 #切换实例的重试次数OkToRetryOnAllOperations: false #对所有操作请求都进行重试,如果是get则可以,如果是post,put等操作没有实现幂等的情况下是很危险的,所以设置为falseConnectTimeout: 5000  #请求连接的超时时间ReadTimeout: 6000 #请求处理的超时时间

3.负载均衡测试
1. 启动两个负载均衡服务时,注意端口要不一致. 启动完成观察Eureka Server的服务列表。

2.注入RestTemplate,添加 @LoadBalanced 注解。

3.测试。 rest请求路径上更换服务名

Feign介绍

Feign是Netflix公司开源的轻量级rest客户端,使用Feign可以非常方便的实现Http 客户端。Spring Cloud引入
Feign并且集成了Ribbon实现客户端负载均衡调用。

 <!-- 引入Feign依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>

启动类中加入@EnableFeignClients注解,并进行测试。

浅学习使用Ribbon 和 Feign的理解和使用相关推荐

  1. 从实例一步一步入门学习SpringCloud的Eureka、Ribbon、Feign、熔断器、Zuul的简单使用(附代码下载)

    场景 SpringCloud -创建统一的依赖管理: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102530574 Sprin ...

  2. SpringCloud系列之服务消费Ribbon和Feign区别

    在业界,一般有两种微服务的实践方法:基于dubbo的微服务架构.基于Spring Cloud的微服务架构.从概念上来讲,Dubbo和Spring Cloud并不能放在一起对比,因为Dubbo仅仅是一个 ...

  3. 关于编程的浅学习与深学习

    导读:Tanky Woo的程序人生在博客中发表了<关于编程的浅学习与深学习>,文章是关于编程学习的一个提议.归纳.总结. 以下是文章全部内容: 关于编程的学习,大家肯定都知道,也是大家都说 ...

  4. 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例

    转载自  实践出真知之Spring Cloud之基于Eureka.Ribbon.Feign的真实案例 Eureka是Spring Cloud Eureka的简称,是Netflix提供的组件之一.通过E ...

  5. 《大数据》2015年第3期“网络大数据专题”——基于特征学习的文本大数据内容理解及其发展趋势...

    基于特征学习的文本大数据内容理解及其发展趋势 袁书寒,向 阳,鄂世嘉 (同济大学计算机科学与技术系 上海 201804) 摘要:大数据中蕴含着重要的价值信息,文本大数据作为大数据的重要组成部分,是人类 ...

  6. Java Process类的浅学习

    Java Process类的浅学习 文章分类:Java编程 今天用了下java.lang.Process类,只是初步的学习,并没有深入实践,因为感觉它的用途并不是很大,偶尔才可能用上,如果要经常使用它 ...

  7. 深度学习 | 反卷积/转置卷积 的理解 transposed conv/deconv

    原文:https://blog.csdn.net/u014722627/article/details/60574260 深度学习 | 反卷积/转置卷积 的理解 transposed conv/dec ...

  8. python网络编程视频教程_Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密)...

    Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密) 全面理解BIO/NIO/AIO 网络层编程,是每一个开发者都要面对的技术.课程为解决大家学习网络层知识的难题, ...

  9. Spring Cloud中Hystrix、Ribbon及Feign的熔断关系是什么?

    导读 今天和大家聊一聊在Spring Cloud微服务框架实践中,比较核心但是又很容易把人搞得稀里糊涂的一个问题,那就是在Spring Cloud中Hystrix.Ribbon以及Feign它们三者之 ...

最新文章

  1. GBDT指标重要性计算
  2. Swift--字符串和字符(二)
  3. python2.7安装scipy_在centOS上离安装Python2.7以及numpy,scipy,matplot,sklearn等
  4. ON_COMMAND和ON_MESSAGE的区别
  5. Java程序运行时间的计算
  6. java虚拟机相关知识点(全网最全)
  7. 【数字图像处理系列五】图像滤波之空间滤波:图像平滑降噪和图像锐化
  8. 剖析Linux内核源码分析《入门技术栈》
  9. 医疗系统流程软件测试用例,医疗管理系统案例测试用例.doc
  10. Ubuntu-区域截图
  11. gps wifi信号测试软件,搜星+WiFi+EMI 导航平板信号性能横评
  12. 使用Tansformer分割三维腹部多器官--UNETR实战
  13. 高度优先左高树(HBLT) - C语言
  14. lnoi2019游记
  15. python分段函数图像画法_数值实验分段函数图像-Python绘图
  16. USB简单介绍USB共享网络功能(一)
  17. zerotier使用教程_ZeroTier 中阶教程
  18. 有铅焊锡丝与无铅焊锡丝的性能差异大解析
  19. 商品下单未支付,如何取消订单?
  20. CSDN 2008上海英雄会有感

热门文章

  1. 基于Java+SpringBoot+vue+node.js实现自行车租赁平台管理系统
  2. HTML+CSS+JS实现 ❤️圆圈倒计时间❤️
  3. mysql with as 用法_Python之图解with语句
  4. 电脑表格制作教程入门_第三节 CorelDRAW制作作品的流程 - CorelDRAW基础入门教程 - 平面设计学院...
  5. java ios压缩图片,Java、ios图片上传
  6. 冯乐乐 unity_Unity常用矩阵运算的推导补遗——切线空间
  7. 计算机键盘打出来都是英语大写怎么办,电脑键盘上大小写怎么切换
  8. php 500 yii,yii2.0出现500错误怎么办
  9. Spring Boot 后台验证 Hibernate Validation
  10. 计算数字的位数并逆序输出