Ribbon的使用

Posted zhuomuniao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ribbon的使用相关的知识,希望对你有一定的参考价值。

Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。

可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。

我们通常所说的负载均衡都指的是服务端负载均衡,比如nginx,Ribbon是一个基于客户端负载均衡,在客户端负载均衡中,所有客户端节点都维护着自己要访问的服务端清单,而这些服务端端清单来自于服务注册中心,比如上一章我们介绍的Eureka服务端。

技术图片

 

 

 将

 通过Spring Cloud Ribbon的封装,我们在微服务架构中使用客户端负载均衡调用非常简单,只需要如下两步:

        ??服务提供者只需要启动多个服务实例并注册到一个注册中心或是多个相关联的服务注册中心。

        ??服务消费者直接通过调用被@LoadBalanced注解修饰过的RestTemplate来实现面向服务的接口调用,如下

  

@SpringBootApplication
public class OrderServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderServiceApplication.class, args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }

 通过注入RestTemplate使用:(其中 “product-service”就是自己向Eureka中注册的Provider名称)

 @Autowired
    private RestTemplate restTemplate;
    @Override
    public ProductOrder save(Integer userId, Integer productId) {
        restTemplate.getForObject("http://product-service/api/v1/product/findById?id="+productId,Object.class);

 

        这样,我们就可以将服务提供者的高可用以及服务消费者的负载均衡调用一起实现了。

以上是关于Ribbon的使用的主要内容,如果未能解决你的问题,请参考以下文章

springcloud-Ribbon配置自定义算法

nacos 负载均衡-Ribbon

Ribbon 和 Feign 的区别

ribbon使用eureka的meta进行动态路由

WPF RibbonWindow + Ribbon = 屏幕外的标题?

springcloud-05-ribbon中不使用eureka