• springcloud--riboon快速搭建


    Ribbon是Spring Cloud核心组件之一,它提供的最重要的功能就是负载均衡,和硬件负载均衡F5不同,它的负载均衡是基于客户端的,Zuul网关和Feign可以通过Ribbon轻松的实现服务的负载均衡,同时避免了与业务无关的冗余代码。

    搭建

    1. 用集群方式创建两台生产者eureka-client,提供方法供消费者调用,并向eureka-server注册
    2. 创建一台消费者,提供方法,调用生产者提供的方法,同样向eureka-server注册
    3. 向生产者多次发送请求,检验是否实现负载均衡

    使用

    首先创建一台springboot项目–做生产者

    • 引入web依赖,用来响应以及发请求
    • 引入eureka-client依赖,用做服务注册
    • 配置yml文件
    • 开启eureka客户端,@EnableEurekaClient
    • 手写一个方法以供消费者调用

    pom.xml文件

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-webartifactId>
    4. dependency>
    5. <dependency>
    6. <groupId>org.springframework.cloudgroupId>
    7. <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
    8. dependency>

    yml文件

    1. server:
    2. port: 8080
    3. spring:
    4. application:
    5. name: provider
    6. eureka:
    7. client:
    8. service-url:
    9. defaultZone: http://eureka的IP地址/eureka
    10. instance:
    11. hostname: localhost
    12. prefer-ip-address: true
    13. instance-id: ${eureka.instance.hostname}:${spring.application.name}:${server.port}

    controller方法

    1. @RestController
    2. public class ProviderController {
    3. @GetMapping("/hello")
    4. public String hello(){
    5. return "我是提供者aaaaa的接口";
    6. }
    7. }

    再创一台生产者做集群

    • 端口号不能重复,但应用名称要相同
    • 方法返回值做修改,用以检验负载均衡是否成功

    创建一个springboot项目–用作消费者

    • 引入web依赖,用来响应以及发请求
    • 引入eureka-client依赖,用做服务注册
    • 引入ribbon依赖,用作负载均衡
    • 配置yml文件
    • 开启eureka客户端,@EnableEurekaClient
    • 向spring容器中,添加restTemplate实例,并加@LoadBalanced
    • 手写一个请求,用restTemplate来发送,返回结果

    spring容器

     
    
    1. /**
    2. * 这个restTemplate已经变了
    3. * @LoadBalanced 他就会被ribbon来操作
    4. * @return
    5. */
    6. @Bean
    7. @LoadBalanced
    8. public RestTemplate restTemplate(){
    9. return new RestTemplate();
    10. }

    controller

     
    
    1. @Autowired
    2. private RestTemplate restTemplate;
    3. @GetMapping("/testRibbon")
    4. public String testRibbon(String serviceName){
    5. //正常情况下要拿到ip和prot以及路径才可以用
    6. String result = restTemplate.getForObject("http://" + serviceName + "/hello", String.class);
    7. return result;
    8. }

    结果

    用浏览器发送请求,访问消费者的testRibbon方法,可以返回生产者型号,在页面上轮询显示a生产者和b生产者

  • 相关阅读:
    ROS自学笔记十七:Arbotix
    健身耳机哪个好,运动最佳的几款耳机推荐
    《web课程设计》基于HTML+CSS+JavaScript典的中医药大学网(11个页面)
    C语言:复习
    自编码器AE全方位探析:构建、训练、推理与多平台部署
    万字总结随机森林原理、核心参数以及调优思路
    【嵌入式 – GD32开发实战指南(ARM版本)】第2部分 外设篇 - 第3章 温度传感器DS18B20
    人工智能开源社区论坛----开源助力多领域AI生态发展| ChinaOSC
    高效解决git中的冲突
    Android实验:Activity界面基础
  • 原文地址:https://blog.csdn.net/weixin_60663670/article/details/126825017