栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud微服务之Eureka添加Ribbon负载均衡

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud微服务之Eureka添加Ribbon负载均衡

注册中心

请参考:https://blog.csdn.net/MadLifeBin/article/details/120332483
可搭建单机版用于 Demo 测试

服务提供与消费

请参考:https://blog.csdn.net/MadLifeBin/article/details/120420139

全链路监控

请参考:https://blog.csdn.net/MadLifeBin/article/details/120445839

总体思路

构建一个注册中心,多个服务提供方(接口返回服务名、端口信息),一个服务消费方,在服务消费侧添加Ribbon负载均衡,测试调用接口时,观察每次响应的服务方的信息。

一. 添加依赖

   org.springframework.cloud
   spring-cloud-starter-netflix-ribbon

二. 添加配置
ribbon.ConnectTimeout=3000
ribbon.ReadTimeout=30000
http-feign-provider8083.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RoundRobinRule
三. 构造场景 1. 服务提供者增加接口

该接口返回当前服务的应用名、端口,方便在服务消费方区别调用了哪个服务

@GetMapping("/loadBalanceDemo/getProviderInfo")
public String getProviderInfo(){
    return "当前Provider-springApplicationName: " + springApplicationName + ",端口为:" + serverPort;
}
2. 服务消费方构建消费链路
@FeignClient(name="http://${env.app.name.loadBalanceDemo}",contextId = "LoadBalanceDemoClient",path = "/loadBalanceDemo")
public interface LoadBalanceDemoClient {
    @GetMapping("/getProviderInfo")
    String getProviderInfo();
}
@GetMapping("/getProviderInfo")
    public String getProviderInfo(){
        return loadBalanceDemoClient.getProviderInfo();
    }
3. 启动服务,联调

注册中心、服务消费各启动一个进程,服务提供方使用命令行指定端口启动多个服务进程,注册到同一个注册中心

java -jar .http-feign-provider8083.jar --server.port=8086



当前服务消费侧使用的负载均衡算法为 RoundRobinRule 轮询,则在不断刷新接口时,服务provider 的端口会按一定的顺序打印。

四.其他Ribbon负载均衡算法

RoundRobinRule 轮询策略
RandomRule 随机策略
BestAvailableRule 高可用
WeightedResponseTimeRule 响应时间权重

代码参考仓库:
https://gitee.com/pengld-demo/my-spring-cloud-demo

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/270004.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号