Spring Cloud学习笔记(Ribbon):Ribbon的应用样例

这篇具有很好参考价值的文章主要介绍了Spring Cloud学习笔记(Ribbon):Ribbon的应用样例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这是本人学习的总结,主要学习资料如下
- 马士兵教育

1、Ribbon简介

我们都知道Ribbon是用于负载均衡的。提供同一种服务的Client可能有多个,比如有多个User Client提供查询用户信息的服务,使用Ribbon就能简单地达到负载均衡的效果。

1.1、架构图

想要使用Ribbon,无论是服务提供者还是调用服务者都必须作为Client注册到Server中。
ribbon配置,spring cloud,学习,笔记

1.2、简单实现负载均衡

如果是使用RestTemplate请求服务,那么可以在RestTemplatebean配置上加上@LoadBalanced注解即可。之后使用RestTemplate调用服务就会自动实现负载均衡。这样的方式是循环轮询的调用服务。

@Configuration
public class RestConfig {
    @LoadBalanced
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

现在我们有两个UserClient提供服务,user-client1user-client2。用order-client去调用11次,因为是循环轮询调用,会发现会交替调用user-client1user-client2

这是user-client1user-client2application.yml,大部分配置都一样,只有port不相同。spg.application.name必须一样,不然Ribbon会认为他们不提供同一种服务。

这里他们两都是user-client

spring:
  application:
    name: user-client

这是order-client调用的代码。只需要指定spring.application.name,路径和参数即可。

private int i = 0;
@Override
public String getUserInfo(String userId) {
    return restTemplate.getForObject("http://user-client/getUserInfo?userId=" + i++, String.class);
}

可以看到两个user-client循环提供服务。ribbon配置,spring cloud,学习,笔记

ribbon配置,spring cloud,学习,笔记



2、配置负载均衡策略

2.1、IRule

IRule是代表规则的接口,它的实现类有RoundRobinRule,即默认调用服务的规则,循环调用。还有RondamRule,随机选取服务调用。

还有其他的策略这里就不一一介绍了。总之IRule及其实现类给我们提供了一些常见的选择策略。大部分情况我们可以选择其中一种直接用,不用再自己写。


2.2、使用IRule简单示例

2.2.1、Overview

  1. 配置IRule的bean,将其中一个实现类注入到Spring中。这里我将选取RandomRule注入。
  2. 将注入的IRule与具体的服务客户端关联起来,让Ribbon知道什么服务器用什么规则。在这里服务者是user-client,我们需要把这个和刚才注入的IRule绑定起来。

通过以上两步就可以自定义负载均衡策略。

2.2.1、注入IRule

@Configuration
public class OrderRibbonRule {
    @Bean
    public IRule ribbonRule() {
        return new RandomRule();
    }
}

2.2.2、关联IRule和服务

在这里我有两台机器提供服务,他们都是spring.application.name=user-client,我们需要将刚才的注入的IRuleuser-client关联起来。

@Configuration
@RibbonClient(name = "user-client", configuration = OrderRibbonRule.class)
public class UserRibbonConfiguration {
}

之后通过http://localhost:9002/createOrder访问多次,可以看到Ribbon随机选取机器提供服务。

ribbon配置,spring cloud,学习,笔记

ribbon配置,spring cloud,学习,笔记文章来源地址https://www.toymoban.com/news/detail-858137.html

到了这里,关于Spring Cloud学习笔记(Ribbon):Ribbon的应用样例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Spring Cloud】Nacos及Ribbon组件的使用

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《Spring Cloud》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你的加入,一起

    2024年01月25日
    浏览(63)
  • Spring Cloud之负载均衡与服务调用(Ribbon)

    目录 Ribbon 简介 负载均衡 简介 负载均衡方式 服务端负载均衡 工作原理 特点 客户端负载均衡 工作原理 特点 对比 实现 负载均衡策略 切换负载均衡策略 定制负载均衡策略 超时与重试 单个服务配置 全局配置 服务调用 示例         Ribbon 是 Netflix 公司发布的开源组件,其

    2024年02月08日
    浏览(51)
  • Ribbon:Spring Cloud负载均衡与服务调用组件

    负载均衡? Ribbon实现服务调用? Ribbon实现负载均衡? 切换负载均衡策略? 定制负载均衡策略? 负载均衡 负载均衡(Load Balance),将用户的请求平分到多个服务器上运行,以扩展服务器带宽、增强数据处理能力、增加吞吐量、提高网络的可用性和灵活性的目的。 服务端负载

    2024年02月03日
    浏览(46)
  • 【Spring Cloud】Ribbon 中的几种负载均衡策略

    负载均衡通常有两种实现手段,一种是服务端负载均衡器,另一种是客户端负载均衡器,而我们今天的主角 Ribbon 就属于后者——客户端负载均衡器。 服务端负载均衡器的问题是,它提供了更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策略的需求,而使

    2024年02月15日
    浏览(61)
  • Spring Cloud - Ribbon 负载均衡原理、负载策略、懒加载

    目录 ​编辑 一、Ribbon 负载均衡原理 1.1、前言 1.2、负载均衡的工作流程 二、负载均衡策略 2.1、策略原理 2.2、负载均衡自定义方式 三、Ribbon 加载方式 ps:案例是上一章所讲的 “根据订单id查询订单的同时,把订单所属的用户信息一起返回”  。 上一章我们讲到 order-servi

    2024年02月09日
    浏览(37)
  • Spring Cloud学习笔记:Eureka简介,Eureka简单样例

    这是本人学习的总结,主要学习资料如下 - 马士兵教育 Eureka 是 SpringCloud Nexflix 的核心子模块,其中包含 Server 和 Client 。 Server 提供服务注册,存储所有可用服务节点。 Client 用于简化和 Server 的通讯复杂度。 下面是 Eureka 的简单架构图 每一个服务节点需要在 Eureka Server 中注册

    2024年04月16日
    浏览(54)
  • Spring Cloud 实战 | 解密负载均衡Ribbon底层原理,包含实战源码

    专栏集锦,大佬们可以收藏以备不时之需 Spring Cloud实战专栏:https://blog.csdn.net/superdangbo/category_9270827.html Python 实战专栏:https://blog.csdn.net/superdangbo/category_9271194.html Logback 详解专栏:https://blog.csdn.net/superdangbo/category_9271502.html tensorflow专栏:https://blog.csdn.net/superdangbo/category_869

    2024年02月08日
    浏览(53)
  • 【Spring Cloud】Ribbon 实现负载均衡的原理,策略以及饥饿加载

    在前文《深入理解 Eureka 注册中心的原理、服务的注册与发现》中,介绍了如何使用 Eureka 实现服务的注册与拉取,并且通过添加 @LoadBalanced 注解实现了负载均衡。这种自动化的背后隐藏着许多疑问: 服务是在何时进行拉取的? 负载均衡是如何实现的? 负载均衡的原理和策略

    2024年02月07日
    浏览(47)
  • 【springcloud 微服务】Spring Cloud Ribbon 负载均衡使用策略详解

    目录 一、前言 二、什么是Ribbon 2.1 ribbon简介 2.1.1  ribbon在负载均衡中的角色

    2024年02月02日
    浏览(64)
  • Spring Boot 中的 Spring Cloud Ribbon:什么是它,原理及如何使用

    在分布式系统中,服务之间的通信是非常重要的。在大型的分布式系统中,有许多服务需要相互通信,而这些服务可能会部署在多个服务器上。为了实现服务之间的通信,开发人员需要编写大量的代码来处理负载均衡、故障转移和服务发现等问题。为了简化这个过程,Spring

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包