摘要:概要什么是实战整合实现负载均衡是什么是一个客户端负载均衡的组件什么是负载均衡负载均衡就是分发请求流量到不同的服务器目前的实现有软件和硬件负载均衡分为两种服务器端负载均衡如上图所示服务器端负载均衡是对客户透明的用户请求到服务器真正的服务器是由
概要
Spring Cloud Netflix Ribbon是什么?什么是Spring Cloud Netflix Ribbon?
实战:整合Ribbon实现负载均衡
Spring Cloud Netflix Ribbon 是一个客户端负载均衡的组件.
什么是负载均衡?
负载均衡就是分发请求流量到不同的服务器,目前的实现有软件(ngnix,apache,HA Proxy)和硬件(F5,NSX,BigIP).
负载均衡分为两种:
服务器端负载均衡
如上图所示.服务器端负载均衡是对客户透明的,用户请求到LB服务器,真正的Application服务器是由LB服务器分发控制的.
客户端负载均衡
如图所示,它是客户端软件的一部分,客户端获知到可用的服务器列表按一定的均衡策略,分发请求.
Ribbon的特点
Ribbon就是这样一种客户端负载均衡的实现.
和Eureka完美整合
支持多种协议-HTTP,TCP,UDP
caching/batching
built in failure resiliency
实战:整合Ribbon实现负载均衡目标:基于之前的例子,在sentence app中添加Ribbon负载均衡,启动两个noun app,使用不同的words数据,以验证Ribbon的效果.具体步骤如下:
sentence服务添加依赖 spring-cloud-starter-ribbon (pom.xml)
替换DiscoveryClient为LoadBalancerClient及其使用的方法(getWord)
public String getWord(String service) { ServiceInstance instance = loadBalancer.choose(service); return (new RestTemplate()).getForObject(instance.getUri(),String.class); }
查看http://localhost:8020/sentence,看其是否能正常启动
停掉量词服务,为了Eureka可以区分两个相同host的相同服务,在bootstramp.yml中添加实例号.
# Allow Eureka to recognize two apps of the same type on the same host as separate instances: eureka: instance: instanceId: ${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${random.value}}
5.先启动一个noun服务,再把noun服务中的words换为英文
String words = “picture,movie,building,aninmal”;
6.查看http://localhost:8010,看其造句是否会一次中文一次英文(默认ribbon是轮训算法)
7.停掉其中一个noun服务,看其是否会一次成功一次失败
特别感谢 kennyk65
Spring Cloud 中文用户组 31777218
Spring-Cloud-Config 官方文档-中文译本 (本人有参与,哈哈)
Spring Cloud Netflix 官网文档-中文译本
本文实例github地址
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/65008.html
摘要:是一个相对比较新的微服务框架,年才推出的版本虽然时间最短但是相比等框架提供的全套的分布式系统解决方案。提供线程池不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务器雪崩的问题。通过互相注册的方式来进行消息同步和保证高可用。 Spring Cloud 是一个相对比较新的微服务框架,...
摘要:本例中介绍如何使用来完成服务调用并实现负载均衡。即,对于注册中心而言,生产者和调用者都是端。文件配置如下在文件中,我们将应用命名为,端口为,表示注册中心地址。 前言 Ribbon是Spring Cloud体系中完成负载均衡的重要组件。Spring Cloud体系中有两种完成服务调用的组件,一种是Ribbon+RestTemplate,另一种Feign。Feign默认使用的也是Ribbo...
摘要:要运行仪表板,请使用注解主类,然后访问并将仪表板指向客户端应用程序中的单个实例的端点。连接到使用的端点时,必须信任服务器使用的证书,如果证书不受信任,则必须将证书导入,以便仪表板成功连接到流端点。 Hystrix超时和Ribbon客户端 使用包装Ribbon客户端的Hystrix命令时,要确保将Hystrix超时配置为长于配置的Ribbon超时,包括可能进行的任何可能的重试,例如,如果...
摘要:前言在体系中扮演着统一网关的角色,负责与外部交互。与结合使用,可以根据服务名来访问后端的服务,对于而言,也是一个。这段代码表示,如果请求中没有信息,就会报错。 前言 Zuul在Spring Cloud 体系中扮演着统一网关的角色,负责与外部交互。用户可以通过不同的URL特征来访问不同的后端服务,类似于Nginx代理的效果。Zuul与Eureka结合使用,可以根据服务名来访问后端的服务,...
摘要:第篇电影微服务,使用配置文件配置在客户端进行负载均衡调度算法一大致介绍通过配置来设置客户端进行负载均衡的调度算法通过两种代码调用方式来测试客户端负载均衡算法二实现步骤添加引用包模块客户端发现模块 SpringCloud(第 008 篇)电影微服务,使用 application.yml 配置文件配置 Ribbon 在客户端进行负载均衡调度算法 - 一、大致介绍 1、通过 applicat...
阅读 3545·2021-11-16 11:45
阅读 2047·2021-11-08 13:23
阅读 2186·2021-10-11 10:59
阅读 2872·2021-09-27 13:36
阅读 2464·2019-08-30 15:54
阅读 2641·2019-08-29 16:58
阅读 2756·2019-08-29 16:56
阅读 1317·2019-08-26 13:52