当前位置: 首页 > news >正文

Spring Cloud - Spring Cloud 负载均衡(Ribbon 负载均衡概述、Ribbon 使用)

一、Ribbon 负载均衡概述

  • Ribbon 是 Spring Cloud 提供的一种负载均衡解决方案,Ribbon 是 Netflix 发布的负载均衡器,Spring Cloud 对其进行了封装,形成了 Spring Cloud Ribbon

  • Ribbon 的使用同样需要结合 Eureka Server

  • 负载均衡算法:轮询、随机、加权轮询、加权随机


二、Ribbon 使用

1、具体实现
(1)配置工程
  • 创建子工程(Module),在 pom.xml 文件中配置相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><parent><artifactId>SpringCloudTest</artifactId><groupId>com.my</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>Ribbon</artifactId><!-- Eureka Client --><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency></dependencies></project>
(2)配置文件
  • 在 resources 目录下创建并配置 application.yaml 文件
server:port: 8040
spring:application:name: ribbon
eureka:client:service-url:defaultZone: http://localhost:8761/eureka/instance:prefer-ip-address: true
(3)Config
  • 创建 MyConfig 配置类,将 RestTemplate 对象注入到 IoC 容器中,并实现负载均衡
package com.my.config;import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;@Configuration
public class Myconfig {@Bean// 添加负载均衡注解@LoadBalancedpublic RestTemplate restTemplate() {return new RestTemplate();}
}
(4)Controller
  • 创建 RibbonHandler 类
package com.my.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;@RestController
@RequestMapping("/ribbon")
public class RibbonHandler {@Autowiredprivate RestTemplate restTemplate;@GetMapping("/test")public String test() {return restTemplate.getForObject("http://ServerConsumer/consumer//zuulLoadBalancingTest", String.class);}
}
(5)启动类
  • 创建启动类
package com.my;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class RibbonApplication {public static void main(String[] args) {SpringApplication.run(RibbonApplication.class, args);}
}
2、测试
  1. 依次启动注册中心,服务提供者,服务消费者(第一个启动类),Ribbon

  2. 修改服务消费者的配置文件(application.yaml)

    • 将 server.port: 8020 修改为 server.port: 8021
  3. 再次启动一个服务消费者(使用第二个启动类)

  4. 使用 Postman 测试,多次访问,观察端口号的变化

    • 请求地址(GET 请求):http://localhost:8040/ribbon/test
http://www.dtcms.com/a/516551.html

相关文章:

  • 行业网站运营网站上可以做文字链接么
  • 通达信--报表分析
  • 做谷歌推广一定要网站吗it运维需要具备哪些能力
  • 大模型数据筛选、分类、生成任务,满足并发速度和处理准确要求
  • CentOS系统yum list使用指南
  • 社保减员要怎么做 国税局网站建设工程用地批准手续在哪个网站
  • “HTTPS 个人化”实战,个人站点与设备调试的部署、验证与抓包排查方法
  • 手机网站cms 开源中国主流媒体平台有哪些
  • 档案管理系统有什么好处?核心功能让档案管理效率提升
  • 基于MountainTop数据的STAP算法仿真实现
  • Linux驱动之USB、MIPI摄像头驱动
  • TypeScript 面试题及详细答案 100题 (71-80)-- 模块与命名空间
  • 元组练习题
  • 【文献分享】Cell Decode:利用多尺度可解释深度学习进行细胞身份解码
  • H6843 DC-DC升压恒压芯片 支持3.3V转5V升压12V升压24V升压36V4A大电流电源芯片 低功耗
  • 4399页游网站第二课强登陆网站新型智库建设的意见
  • 企业网站模板下载网址东莞建网站哪家强
  • 北京住总第三开发建设有限公司网站广州万户网络技术有限公司招聘
  • gr00t机器人数据录制,通过遥操作的方式,操作isaacsim录制仿真数据的方法,HDF5格式秒变LeRobot标准数据集(数据采集一)
  • 织梦 网站公告陕西省住建厅网站官网
  • 23.C++11(四)
  • Leetcode 31
  • 手机 iOS 系统全解析,生态优势、开发机制与跨平台应用上架实践指南
  • 在线做动漫图的网站网站开发用什么技术asp
  • React Native 使用 react-native-credentials-manager 接入谷歌登录教程
  • 从零起步学习MySQL || 第七章:初识索引底层运用及性能优化(结合底层数据结构讲解)
  • CVPR2025 | OPS | 通过假设空间增强提升对抗迁移性
  • 自己做的网站怎么才能在百度上查找郑州定制网站推广工具产品
  • 如何从小白变成rust糕手
  • 注册一个网站多少钱?哪个网站可以免费建站