资讯专栏INFORMATION COLUMN

Spring Cloud实战(三)-Spring Cloud Netflix Ribbon

wangbinke / 515人阅读

摘要:概要什么是实战整合实现负载均衡是什么是一个客户端负载均衡的组件什么是负载均衡负载均衡就是分发请求流量到不同的服务器目前的实现有软件和硬件负载均衡分为两种服务器端负载均衡如上图所示服务器端负载均衡是对客户透明的用户请求到服务器真正的服务器是由

概要

什么是Spring Cloud Netflix Ribbon?

实战:整合Ribbon实现负载均衡

Spring Cloud Netflix 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

相关文章

  • 2021 年最新基于 Spring Cloud 的微服务架构分析

    摘要:是一个相对比较新的微服务框架,年才推出的版本虽然时间最短但是相比等框架提供的全套的分布式系统解决方案。提供线程池不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务器雪崩的问题。通过互相注册的方式来进行消息同步和保证高可用。 Spring Cloud 是一个相对比较新的微服务框架,...

    cikenerd 评论0 收藏0
  • 一起学习使用Spring Cloud NetflixRibbon

    摘要:本例中介绍如何使用来完成服务调用并实现负载均衡。即,对于注册中心而言,生产者和调用者都是端。文件配置如下在文件中,我们将应用命名为,端口为,表示注册中心地址。 前言 Ribbon是Spring Cloud体系中完成负载均衡的重要组件。Spring Cloud体系中有两种完成服务调用的组件,一种是Ribbon+RestTemplate,另一种Feign。Feign默认使用的也是Ribbo...

    nidaye 评论0 收藏0
  • Spring Cloud 参考文档(Hystrix超时和Ribbon客户端)

    摘要:要运行仪表板,请使用注解主类,然后访问并将仪表板指向客户端应用程序中的单个实例的端点。连接到使用的端点时,必须信任服务器使用的证书,如果证书不受信任,则必须将证书导入,以便仪表板成功连接到流端点。 Hystrix超时和Ribbon客户端 使用包装Ribbon客户端的Hystrix命令时,要确保将Hystrix超时配置为长于配置的Ribbon超时,包括可能进行的任何可能的重试,例如,如果...

    pf_miles 评论0 收藏0
  • 一起学习使用Spring Cloud Netflix之Zuul

    摘要:前言在体系中扮演着统一网关的角色,负责与外部交互。与结合使用,可以根据服务名来访问后端的服务,对于而言,也是一个。这段代码表示,如果请求中没有信息,就会报错。 前言 Zuul在Spring Cloud 体系中扮演着统一网关的角色,负责与外部交互。用户可以通过不同的URL特征来访问不同的后端服务,类似于Nginx代理的效果。Zuul与Eureka结合使用,可以根据服务名来访问后端的服务,...

    FullStackDeveloper 评论0 收藏0
  • SpringCloud(第 008 篇)电影微服务,使用配置文件配置 Ribbon 在客户端进行负载

    摘要:第篇电影微服务,使用配置文件配置在客户端进行负载均衡调度算法一大致介绍通过配置来设置客户端进行负载均衡的调度算法通过两种代码调用方式来测试客户端负载均衡算法二实现步骤添加引用包模块客户端发现模块 SpringCloud(第 008 篇)电影微服务,使用 application.yml 配置文件配置 Ribbon 在客户端进行负载均衡调度算法 - 一、大致介绍 1、通过 applicat...

    wangjuntytl 评论0 收藏0

发表评论

0条评论

wangbinke

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<