一、负载均衡

  负载均衡技术是提高系统可用性、缓解网络压力和处理能力扩容的重要手段之一。

  负载均衡可以分为服务器负载均衡和客户端负载均衡,服务器负载均衡由服务器实现,客户端只需正常访问;客户端负载均衡技术,客户端会维护一组服务器引用,每次发起请求,根据负载均衡算法选择一个服务器节点进行访问,将用户请求尽可能平摊到后端服务器上,做到系统的高可用。

  Spring Cloud提供了两种服务调用方式,客户端访问的RESTful+Ribbon和服务间的Feign调用(内部集成了Ribbon),都采用了客户端负载均衡组件Ribbon。

二、Ribbon

  Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,基于Netflix Ribbon实现,不是独立部署,但它几乎存在于每个微服务的基础设施中。

  在客户端从服务注册中心获取服务器信息列表后,根据负载均衡算法选择一个服务器用于本次访问。

  要注意:在Eureka注册服务集群时,提供相同服务的应用要注册为同名服务,Ribbon也是通过服务名来调用服务。(每个服务都连接不同的数据库,这样用来区分不同的服务,便于测试,实际中也便于维护)

Ribbon自带的负载均衡策略有如下几个:

  • RoundRibbonRule:轮询,也是默认的负载均衡策略。
  • RandomRule:随机选择。
  • AvailabilityFilteringRule:先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,以及并发连接数超过阈值的服务,剩下的服务中采用轮询的方式。
  • BestAvailableRule:先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务。
  • WeightedResponseTimeRule:根据平均响应时间计算所有服务的权重,响应越快的服务权重越大,越容易被选中,通常在系统刚启动,统计信息不足的情况下,采用轮询的方式。
  • RetryRule:先轮询,如果获取失败则在指定时间内重试,重新轮询可用的服务。
  • ZoneAvoidanceRule:复合判断Server所在区域的性能和server的可用心选择服务器。

可以在配置文件中指定Ribbon采用的负载均衡策略。

三、demo演示

最新文章

  1. 【IOS开发笔记02】学生管理系统
  2. 将richTextBox中的内容写入txt文件发现不换行(解决方法),在richTextBox指定位置插入文字
  3. iOS UITableViewController出现crash
  4. Congruence relation 同余关系
  5. MAFFT多重序列比对--(附比对彩标方法)
  6. centos 7 u盘安装
  7. word-break:break-all和word-wrap:break-word的区别
  8. jquery中ajax常用方法
  9. 斜率优化(CDQ分治,Splay平衡树):BZOJ 1492: [NOI2007]货币兑换Cash
  10. EF项目中应用出现问题???
  11. matlab绘制函数
  12. flex中在basewidget中不能使用图表组件问题
  13. HDu 2830 Matrix Swapping II(dp)
  14. Fiddler插件 --- 解密Elong Mapi请求参数及响应内容
  15. Spring 自定义注解,配置简单日志注解
  16. KVM_虚拟化技术
  17. 要求必须全部重复的数据sql--想了半天才写出来的
  18. Eclipse中java文件生成jar文件的方法
  19. CopyOnWriteArrayList&Collections.synchronizedList()
  20. MT【105】待定系数算最大最小

热门文章

  1. 关于ClassLoader的使用
  2. 09 (OC)* 键路径(keyPath)、键值编码(KVC)、键值观察(KVO)
  3. Python连载39-生成器、next函数、yield返回值
  4. [LeetCode]Power of N
  5. 深入全面理解面向对象的 JavaScript
  6. 节点操作--JavaScript
  7. vmware上安装centos7虚拟机
  8. 理解 Redux 的中间件
  9. SpringBoot 连接kafka ssl 报 CertificateException: No subject alternative names present 异常解决
  10. SpringMvc问题记录-Controller对于静态变量的访问分析