Ribben

Ribben

基于Netflix Ribbon实现的一套客户端负载均衡的工具,主要功能是提供客户端软件负载均衡算法和服务调用

Ribben负载均衡替换

  • 新建一个包。不能是启动类所在包及其子包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l1kAz7iJ-1624523058159)(C:Users张丰AppDataRoamingTyporatypora-user-imagesimage-20210623162446075.png)]

  • 添加自定义负载均衡规则类
  • 主启动类加上@RibbonClient()注解

Ribben负载轮询算法原理

负载均衡算法:

建立接口并添加实现类

建立接口

? 实现类

8001 和 8002
order
package com.atguigu.springcloud.controller;import com.atguigu.springcloud.entities.CommonResult;import com.atguigu.springcloud.entities.Payment;import com.atguigu.springcloud.lb.MyLb;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.cloud.client.ServiceInstance;import org.springframework.cloud.client.discovery.DiscoveryClient;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;import javax.annotation.Resource;import java.net.URI;import java.util.List;/** * @Author: 张丰 * @DateTime: 2021/5/31 18:50 * @Description: TODO */@RestController@Slf4jpublic class OrderController {    public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";    @Resource    private RestTemplate restTemplate;    @Autowired    DiscoveryClient discoveryClient;    @Resource    MyLb myLb;    @GetMapping(value = "/consumer/payment/lb")    public String getpaymentLb(){ListServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE");if(instances == null || instances.size() == 0){    return null;

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月21日
下一篇 2021年5月21日

相关推荐