Robbin负载均衡详解及实践---SpringCloud组件(三)

news/2024/7/10 0:51:14 标签: spring cloud, 负载均衡, eureka

Robbin负载均衡详解及实践

一 为什么使用Robbin?

在Eureka详解及实践—SpringCloud组件(二)案例中,我们启动了一个feign-provider-modules,然后通过feign-consumer-8080调用feign接口来访问。
但是实际环境中,我们往往会开启很多个feign-provider-modules的集群。此时我们获取的服务列表中就会有多个,到底该访问哪一个呢?
一般这种情况下我们就需要编写负载均衡算法,在多个实例列表中进行选择。

二 Robbin概念

在这里插入图片描述

Ribbon属于进程内LB,它只是一个类库,集成于消费方进程,消费方通过它来获取服务提供方的地址。
所以说我们只需要在消费者端配置负载均衡策略。

进程内LB:将LB集成到消费方,消费方从服务注册中心获知哪些地址可用,然后自己再从可用地址中选择一个合适的服务器。

负载均衡实践

案例中的负载均衡是基于 openfeign+eureka实现的。
引入 spring-cloud-starter-openfeign 后,使用 Ribbon 是客户端负载均衡器 则无需引入额外依赖,因为引入的 spring-cloud-starter-openfeign 依赖中集成了 Ribbon。

实现步骤:

1.启动eureka客户端
2.启动多个provider服务,注册到eureka
3.在consumer端配置负载均衡参数

eureka_25">1.启动eureka客户端

在这里插入图片描述

eureka_28">2.启动多个provider服务,注册到eureka

  1. 为了观察负载均衡效果,改造一下feign-provider-modules服务中的getHandle方法。

    在这里插入图片描述

  2. 启动多个provider实例项目

    在这里插入图片描述
    在这里插入图片描述

  3. 观察eureka控制台发现3个provider成功注册
    http://127.0.0.1:10086/
    在这里插入图片描述

3.在consumer端配置负载均衡参数

feign-provider: # 服务名
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule  # 选择负载均衡策略,默认为轮询方式,当前配置为随机方式
    ConnectTimeout: 250                 # 连接超时时间
    ReadTimeout: 1000                   # ribbon 读取超时时间
    OkToRetryOnAllOperations: true      # 是否对所有操作都进行重试
    MaxAutoRetriesNextServer: 1         # 切换实例的重试次数
    MaxAutoRetries: 1                   # 对当前实例的重试次数

多次访问观察结果为随机
http://localhost:8080/consumer/depart/get/2
在这里插入图片描述


http://www.niftyadmin.cn/n/310905.html

相关文章

GeoTools实战指南: 切割矢量地图数据并导出为Google-XYZ标准的瓦片

GeoTools实战指南: 切割矢量地图数据并导出为Google-XYZ标准的瓦片 介绍 本教程将介绍如何使用 GeoTools 库将 Shapefile 矢量数据渲染为 Google Maps XYZ 切片。此过程包括读取 Shapefile 数据,设置地图样式,计算切片地理范围,并将矢量数据渲染为切片。 TMS (瓦片地图服…

vue 脚手架新手入门(vue cli 2)

文章目录 写在前面1、创建一个vue项目2、项目结构2.1、写两个页面试试2.2、代码解释 3、前后端对接3.1、使用 axios 发起简单请求3.2、 路由 的使用3.2.1、配置默认地址前缀3.2.2、添加子路由3.2.3、切换路由3.2.4、监听路由3.2.5、方法调用 与 页面刷新3.2.6、this.$route 获取…

成都爱尔李晓峰主任:眼睛干到发出求救信号,快注意!

眼睛总感觉痒痒的,时不时干涩、酸胀、畏光? 它在提醒你,它太干了救救它! 干眼如何判断? 干眼症是由于泪液的质和量异常或者泪液的流体动力学障碍而导致眼表无法保持湿润的一种眼病。会发生眼睛干涩、酸胀、畏光、灼热感、异物感、看东西容易…

现代化个人博客系统 ModStartBlog v7.3.0 首页热门博客,UI优化调整

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场,后台一键快速安装 …

HA Of Rancher

序言 Rancher 默认是使用Etcd做的服务与注册中心, 里面有点绕 根据Etcd在Rancher的应用分为了2类 Rancher Service 的 Etcd: 这个etcd是用于存储和发现 RancherService服务集群的,注意并不是我们在Rancher里面创建的业务集群!!!cuiyaonan2000163.com业务集群的Etcd: 这个适用…

【TA100】6 PC手机图形API介绍

1 电脑的工作原理: 电脑是由各种不同的硬件组成,由驱动软件驱使硬件进行工作。所有的软件工程师都会直接或者间接的使用到驱动。定义:是一个图形库,用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口 (API)。针对GPU。应用端:即我们自己的程序端…

陷入“产品纠结”的王振滔,与学不来波司登的奥康

文|螳螂观察 作者| 青月 曾经的一代“鞋王”奥康,正在走下神坛。 4月底,奥康国际披露了2022年的年报,数据显示,公司归母净利润亏损3.7亿元,同比下滑1185.93%。此外,公司年报还被出具了保留意见的审计报告…

一些注意事项

1:Collection 子接口 1:List 鉴于 Java 中数组用来存储数据的局限性,我们通常使用 java.util.List 替代数组 List 集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引 1.1 List 接口主要实现类:Arra…