springCloud-Ribbon API

Ribbon API

Ribbon 是一个独立的组件,是用来进行远程接口调用的

再config中直接代码配置,使用restTemplate,就可以进行远程调用

@Bean
//负载均衡注解
@LoadBalanced
RestTemplate restTemplate() {
    return new RestTemplate();
}

Ribbon配置

可以通过配置文件配置,也可以通过代码配置

如下一部分简单示例

# 关闭 ribbon 访问注册中心 Eureka Server 发现服务,但是服务依旧会注
册。
#true 使用 eureka false 不使用
ribbon.eureka.enabled=true
spring.cloud.loadbalancer.retry.enabled=true
# 指定调用的节点
micro-order.ribbon.listOfServers=localhost:8001
# 单位 ms , 请求连接超时时间
micro-order.ribbon.ConnectTimeout=1000
# 单位 ms , 请求处理的超时时间
micro-order.ribbon.ReadTimeout=2000
micro-order.ribbon.OkToRetryOnAllOperations=true
# 切换实例的重试次数
micro-order.ribbon.MaxAutoRetriesNextServer=2
# 对当前实例的重试次数 当 Eureka 中可以找到服务,但是服务连不上时将会
重试
micro-order.ribbon.MaxAutoRetries=2
micro-order.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.RandomRule
micro-order.ribbon.NFLoadBalancerPingClassName=com.netflix.loadbalancer.PingUrl

以上配置中 micro-order 是一个服务的名称,可以控制针对服务配置

也可以通过代码配置,一些简单示例

@Configuration
public class RibbonLoadBalanceMicroOrderConfig {

//    @RibbonClientName
    private String name = "micro-order";

    @Bean
    @ConditionalOnClass
    public IClientConfig defaultClientConfigImpl() {
        //配置属性都在DefaultClientConfigImpl中
        DefaultClientConfigImpl config = new DefaultClientConfigImpl();
        config.loadProperties(name);
        config.set(CommonClientConfigKey.MaxAutoRetries,2);
        config.set(CommonClientConfigKey.MaxAutoRetriesNextServer,2);
        config.set(CommonClientConfigKey.ConnectTimeout,2000);
        config.set(CommonClientConfigKey.ReadTimeout,4000);
        config.set(CommonClientConfigKey.OkToRetryOnAllOperations,true);
        return config;
    }
    /*不建议使用;判断服务是否存活,在调用前再ping,拉低性能
    */
//    @Bean
    public IPing iPing() {
        //这个实现类会去调用服务来判断服务是否存活
        return new PingUrl();
        //默认  NOPing()
    }

    @Bean
    public IRule ribbonRule() {
        //线性轮训
        new RoundRobinRule();
        //可以重试的轮训
        new RetryRule();
        //根据运行情况来计算权重
        new WeightedResponseTimeRule();
        //过滤掉故障实例,选择请求数最小的实例
        new BestAvailableRule();
        return new RandomRule();
    }
}
// 第二个类
/*
* 这个是针对 micro-order服务的 ribbon配置
* */
@Configuration
@RibbonClients(value = {
        @RibbonClient(name = "micro-order",configuration = RibbonLoadBalanceMicroOrderConfig.class)
})
public class LoadBalanceConfig {
	//...
}

上面配置还包括负载均衡算法等;

ribbon不依赖与spring-cloud

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值