负载均衡——Ribbon

这篇具有很好参考价值的文章主要介绍了负载均衡——Ribbon。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Ribbon,Nexflix发布的负载均衡器,有助于控制HTTP和TCP客户端的行为。基于某种负载均衡算法(轮询、随机等),自动地帮助服务消费者去请求。

当Ribbon和Eureka配合使用时,Ribbot可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。

对Ribbon理解

Ribbon和Eureka配合使用

项目引入Ribbon

<dependency>
	<groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>

如果已经引入spring-cloud-starter-eureka,无需再次引人,里面已经包含该依赖

RestTemplate添加@LoadBalanced注解

只需添加@LoadBalanced就可为RestTemplate整合Ribbon,使其具备负载均衡能力

@Bean
@LoadBalanced
public RestTemplate restTemplate(){
    // 用于访问第三方网络接口
    return new RestTemplate();
}

注意

当Ribbon和Eureka配合使用时,会自动将虚拟主机名(可将其简单理解成为提供者的服务名)映射成微服务的网络地址,代码中记得替换
microservice-provider-user 替换 localhost:8000

@GetMapping("user/{id}")
public User findById(@PathVariable Long id){
    return restTemplate.getForObject("http://microservice-provider-user/" + id, User.class);
}

自定义均衡方式

负载均衡——Ribbon,负载均衡,ribbon,运维

代码注册方式

负载均衡——Ribbon,负载均衡,ribbon,运维

// 注意:该类不应该在主应用程序上下文的@ComponentScan 中,否则该类中的配置信息就被所有的@RibbonClient共享
// 注意:自定义算法不可以放在与注解 @ComponentScan 的同包或者子包下,否则不起作用
@Configuration
public class MySelfRule {
    @Bean
    public IRule ribbonRule(){
        System.out.println("hahahahah");
        // 负载均衡规则改为随机
        return new RandomRule();
    }
}

在主程序添加

@RibbonClient(name = "microservice-provider-user", configuration = MySelfRule.class)
// @ComponentScan忽略指定包
// @ComponentScan(excludeFilters={@ComponentScan.Filter(type = FilterType.REGEX,pattern = "com.cloud.config.*")})
配置方式
# 修改服务地址轮询策略,默认是轮询,可配置随机等
microservice-provider-user:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

Ribbon脱离Eureka使用

https://www.dandelioncloud.cn/article/details/1596843302127353857

报错:
Field loadBalancerClient in com.cloud.controller.MovieController required a bean of type ‘org.springframework.cloud.client.loadbalancer.LoadBalancerClient’ that could not be found.文章来源地址https://www.toymoban.com/news/detail-770882.html

到了这里,关于负载均衡——Ribbon的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【SpringCloud】Ribbon负载均衡

    🏡浩泽学编程 :个人主页  🔥 推荐专栏 :《深入浅出SpringBoot》《java对AI的调用开发》               《RabbitMQ》《Spring》《SpringMVC》《项目实战》 🛸学无止境,不骄不躁,知行合一 在Eureka注册中心中我们在添加完@LoadBalanced注解,即可实现负载均衡功能,现在一起

    2024年04月17日
    浏览(39)
  • Ribbon 负载均衡服务调用

    想要学习完整SpringCloud架构可跳转 : SpringCloud Alibaba微服务分布式架构 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套 客户端负载均衡 的工具。 Ribbon是Netflix发布的开源项目,主要功能是提供 客户端的软件负载均衡算法和服务调用。 Ribbon客户端组件提供一系列完善的配置项如连

    2024年02月16日
    浏览(41)
  • 【微服务】Ribbon负载均衡

    在上文的案例中我们添加了@LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢? 我们这里的@LoadBalanced相当于是一个标记,标记这个RestTemplate发出的请求要被我们的Ribbon拦截和处理。 SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。 那么我们发

    2024年01月16日
    浏览(38)
  • 负载均衡——Ribbon

    Ribbon,Nexflix发布的负载均衡器,有助于控制HTTP和TCP客户端的行为。基于某种负载均衡算法(轮询、随机等),自动地帮助服务消费者去请求。 当Ribbon和Eureka配合使用时,Ribbot可自动从Eureka Server获取服务提供者地址列表,并基于负载均衡算法,请求其中一个服务提供者实例。

    2024年02月03日
    浏览(33)
  • 4.Ribbon负载均衡

    上一节中,我们添加了@LoadBalanced注解,即可实现负载均衡功能,这是什么原理呢? SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。 那么我们发出的请求明明是http://userservice/user/1,怎么变成了http://localhost:8081的呢? 为什么我们只输入了service名称就

    2024年01月24日
    浏览(35)
  • 实用篇-Ribbon负载均衡

    回想一下上面的 \\\'服务发现\\\',order-service微服务向user-service微服务发送请求,但是user-service有两个,也就是开启了两个user-service实例,且端口不同,一个是8081,另一个是8082,下面我们将详细学一下请求在过程中经历了什么,如下图 其中负载均衡的各种策略是在IRule接口里面,

    2024年02月08日
    浏览(34)
  • Ribbon:自定义负载均衡

       自定义负载均衡算法 Myconfig 主启动类 开启

    2024年02月11日
    浏览(38)
  • 微服务-Ribbon负载均衡

    流程 原理 @LoadBalanced 标记RestTemplate发起的http请求要被Ribbon进行拦截和处理 源码分析 ctrl+shift+N搜索LoadBalancerInterceptor,进入。发现实现了ClientHttpRequestInterceptor(客户端Http请求拦截器)的intercept方法 拦截方法 打一个断点,启动order-application,浏览器发送请求http://localhost:8080

    2024年02月08日
    浏览(36)
  • 自定义负载均衡(Ribbon)

    修改配置文件 application.yml

    2024年02月02日
    浏览(33)
  • 微服务-Ribbon(负载均衡)

    负载均衡的面对多个相同的服务的时候,我们选择一定的策略去选择一个服务进行 RoundRobinRule:简单的轮询服务列表来选择服务器 AvailabilityFilteringRule 对两种情况服务器进行忽略: 1.在默认情况下,这台服务器如果3次连接失败,这台服务器就会被设置为“短路状态”,短路状

    2024年02月12日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包