SpringCloud(7)Ribbon 与负载均衡
Ribbon
- SpringCloud Ribbon 是基于NetFlix Ribbon实现的一套客户端负载均衡的工具
- 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。简单的说,就是在配置文件中列出Load Balancer (简称LB) 后面所有的机器,Ribbon 会自动帮助你基于某种规则(如 简单轮询,随机连接等 )去连接这些机器。我们容易使用Ribbon 实现自定义负载均衡的算法
负载均衡
- 什么是负载均衡
Load balancing,即负载均衡,是一种计算机技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最优化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。
常见的负载均衡有软件:Nginx ,LVS 硬件 F5等
- 为什么需要负载均衡
我们在日常生活中经常免不了要去一些比较拥挤的地方,比如地铁站、火车站、电影院、银行等。无论是买票,还是排队入场,这些场所一般都会设置多个服务点或者入口的。如果没有人引导的话,大多数情况下,最近的入口会挤满人。而哪些距离较远的服务点或者入口就宽松很多。
- 负载均很的简单分类
1.集中式LB:服务在消费方和提供方之间使用独立的LB措施,如Nginx:反向代理!,由该设施把访问请求通过某种策略转发质服务的提供方
2.进程式LB:将LB集成到消费方,消费方从服务注册中心获知有那些地址可用,然后自己再从这些地址中选出一个合适的服务器。Ribbon就属于进程内LB,它是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址。
Ribbon负载均实列
1.导入依赖,Ribbon是进程式LB,在消费方配置。
<!--Ribbn--><!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-ribbon --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-ribbon</artifactId><version>1.4.6.RELEASE</version></dependency><!--Eureka客户端--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId><version>1.4.6.RELEASE</version></dependency>
2.配置文件
server:port: 80#配置Eureka
eureka:client:service-url:defaultZone: http://localhost:7001/eureka/, http://localhost:7002/eureka/, http://localhost:7003/eureka/register-with-eureka: false #不向Eureka注册自己
3.启动负载均衡
//配置负载均衡是新RestTemplate@Bean@LoadBalanced //Ribbonpublic RestTemplate getRestTemplate(){return new RestTemplate();}
4.消费方通过负载均衡访问不同地址
//private static final String REST_URL_RREFIX = "http://localhost:8001";//Ribbon 我们这里的地址应该是一个变量,通过服务名来访问private static final String REST_URL_RREFIX = "http://springcloud-provider-dept";
SpringCloud(7)Ribbon 与负载均衡相关推荐
- 【微服务架构】SpringCloud使用Ribbon实现负载均衡
说在前面 软负载均衡的实现方式有两种,分别是服务端的负载均衡和客户端的负载均衡 服务端负载均衡:当浏览器向后台发出请求的时候,会首先向反向代理服务器发送请求,反向代理服务器会根据客户端部署的ip:po ...
- SpringCloud的Ribbon自定义负载均衡算法
1.Ribbon默认使用RoundRobinRule策略轮询选择server 策略名 策略声明 策略描述 实现说明 BestAvailableRule public class BestAvailab ...
- 6.Springcloud的Ribbon的负载均衡算法解析及配置方式
项目地址: github地址 配置方式 1.在restTemplate配置类里面添加一个bean,用于确认所属的负载均衡算法类类型,全部代码如下: package com.debuggg.cloud. ...
- SpringCloud微服务架构,Spring Cloud 服务治理(Eureka,Consul,Nacos),Ribbon 客户端负载均衡,RestTemplate与OpenFeign实现远程调用
什么是SpringCloud 微服务架构 • "微服务"一词源于 Martin Fowler的名为 Microservices的博文,可以在他的官方博客上找到 http://mar ...
- SpringCloud Hoxton版微服务- Ribbon实现负载均衡
Ribbon实现负载均衡 Ribbon概念 一.Ribbon策略 二.配置使用 1.编写服务提供者 2.编写服务消费者 3.测试负载均衡随机策略 Ribbon概念 Spring Cloud Ribbo ...
- 跟着狂神学SpringCloud(Rest环境搭建+Eureka服务注册与发现+ribbon+Feign负载均衡+Hystrix+服务熔断+Zuul路由网关+SpringCloud config分布)
跟着狂神学SpringCloud SpringCloud 回顾之前的知识- JavaSE 数据库 前端 Servlet Http Mybatis Spring SpringMVC SpringBoot ...
- springcloud ribbon 配置负载均衡策略以及自定义策略
一.系统内置的策略有以下几种. 这个负载策略配置说白了就是让 Ribbon 这个客户端负载均衡器怎么进行访问服务提供者列表.是轮流访问?随机访问?权重?等. Ribbon 的负载均衡策略 策略类 ...
- springcloud ribbon实现负载均衡的时候,提示Request URI does not contain a valid hostname: htt...
qq社区:541122375,群名springClould全家桶 问题描述: org.springframework.web.util.NestedServletException: Request ...
- ribbon, restTemplate 负载均衡服务调用
ribbon ribbon concept ribbon核心组件IRule 模仿源码重写轮询 ribbon concept spring cloud ribbon 是基于Netflix ribbon实 ...
最新文章
- 全新 DOCKER PALS 计划上线,带给您不一样的参会体验!...
- 微软850位顶级人才不做Windows研发
- FE.ES-JavaScript的模块化历史
- 如何解决机器学习中数据不平衡问题
- C语言中 void* 详解及应用
- java doc说明书_JAVADOC 常见使用方法 帮助文档
- C++智能指针使用指南 part2:智能指针本身的方法以及使用建议
- nodejs python 通信_Nodejs环境实现socket通信过程解析
- Bandicam_v4.6.5便携特别版 高清视频录制工具
- 如何打造一个让粉丝一见就能收钱的朋友圈
- Java日常编程优化细节
- 报表性能优化方案之单数据集分页SQL实现层式报表
- 是时候该开始读一读JDK源码了
- android 2D游戏开发,引擎设计(三) 实验脚本编写与纸娃娃系统
- Windows10 最新版官方iso镜像(截至2021/02)win10 2009(20h2)
- [MIT6.006 算法导论] 1. Peak Finding 寻峰
- Vue.js 3 ssr 中报错Hydration node mismatch: - Client vnode: div - Server rendered DOM:已解决
- 华硕主板+ubuntu18.04+3090驱动安装踩坑记录
- 硕士论文免费查重网站不靠谱,最好用知网!
- 京峰linux课程目录,京峰教育 Linux编程Shell从入门到精通视频教程