Ribbon客户端
Ribbon
- Ribbon 是 Netflix 提供的一个基于Http和Tcp的客户段负载均衡工具
Ribbon简化远程调用
- 服务端负载均衡
- 负载均衡算法在服务端
- 由负载均衡器维护服务地址列表
- 客户端负载均衡
- 负载均衡算法在客户端
- 客户端维护服务地址列表
- Ribbon可以简化RestTemplate的远程调用
- 实现步骤
- 1.在声明Restemplate的@Bean的时候添加注解 @LoadBalanced
package com.itheima.consumer.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 RestemplateConfig {//加上这个注解
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
- 2.在使用restTemplate发起请求时,需要定义url时,host:port可以替换为服务提供方的应用名称 例如:EUREKA-PROVIDER
- 随机:RandomRule
- 轮询:RoundRobinRule
- 最小并发:BestAvailableRule
- 过滤:AvailabilityFilteringRule
- 响应时间:WeightedResponseTimeRule
- 轮询重试:RetryRule
- 性能可用性:ZoneAvoidanceRule
- 1.创建一个配置类MyRule
package com.itheima.consumer.config;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyRule {
@Bean
public IRule rule(){
return new RandomRule();
}}
- 2.在应用程序启动类中添加配置
package com.itheima.consumer;
import com.itheima.consumer.config.MyRule;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.ribbon.RibbonClient;
/**
* 启动类
*/@SpringBootApplication
@EnableEurekaClient
@EnableDiscoveryClient //激活DiscoveryClient
/**
* 配置Ribbon负载均衡策略
* name:设置 服务提供方的 应用名称
* configuration: 设置 负载均衡的Bean
*/
@RibbonClient(name = "EUREKA_PROVIDER", configuration = MyRule.class)
public class ConsumerApp {
public static void main(String[] args) {
SpringApplication.run(ConsumerApp.class, args);
}
}
【Ribbon客户端】2·配置方式设置Ribbon的负载均衡策略
- 在yml中配置
#配置方式设置Ribbon的负载均衡策略
EUREKA_PROVIDER: #设置服务提供方 的应用名称
ribbon:
NFloadBalanceRuleClassName: com.netflix.loadbalancer.RandomRule #策略类
推荐阅读
- thinkphp3.2下实现阿里云视频点播实例(客户端JavaScript上传)
- HDFS读写数据流
- Spring|Spring Cloud Alibaba之负载均衡组件 - Ribbon
- Spring|Spring Cloud学习day98(Eureka的原理和Ribbon负载均衡)
- 客户端转小程序之入门二
- 006—Zookeeper—客户端使用-3
- DOM树问题
- 【番外篇】客户端开发(Electron)无源码如何做汉化
- 这个命令行HTTP客户端工具真不错
- 彩神手机客户端