springcloud之ribbon初识篇-通过yml配置实现负载均衡

如果注册中心是eureka那么使用ribbon我们不需要额外添加pom配置信息,eurekaClient默认加载了ribbon的信息。

我们以restTemplate为例使用ribbon

yml配置:

#指定为某个服务配置负载规则
test1:
  ribbon:
    #配置自定义策略
    NFLoadBalancerRuleClassName: com.example.springcloud.testdemo.ribbonConfig.MyRule


ribbon-java:
  ribbon:
    #配置随机策略
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

---
#为所有服务配置统一规则
ribbon:
  #所有服务都使用随机策略
  NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

eureka中的服务信息:

java定义配置类:

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;

/**
 * Created by py
 * 2020/3/10
 */
@Configuration
public class RibbonComponent {

    @Bean
    @LoadBalanced //todo 通过该注解实现负载均衡
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

}

调用代码:

@RestController
public class RibbonTest1Controller {
    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("/ribbon/test1")
    public String queryTestRestTemplate(){
        /**此处我们写的是http://服务名/请求路径;ribbon会在我们的服务列表找到根据服务名找到对应的服务信息,然后将服务名“test1”替换成ip:port;然后在进行实际的求情。
转换后的请求 http://ip:port/eureka-clinet1/ribbonTest */
        String url = "http://test1/eureka-clinet1/ribbonTest";
        Map<String,String> map = new HashMap<String,String>(){{
            put("name","ribboon-test");
        }};
        //springcloud中配套封装使用的http请求;不再需要我们手动创建http,关闭http
        ResponseEntity<String> result =restTemplate.postForEntity(url,map,String.class);
        System.err.println(result.getBody());
        return result.getBody();
    }
}

示意图:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值