Ribbon负载均衡

1.依赖的引入

<dependency>            <groupId>org.springframework.cloud</groupId>            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

在引入eureka客户端的坐标时自带的有Ribbon依赖,所以无需单独引入

restTemplate.getForObject与restTemplate.getForEntity的区别

restTemplate.getForObject调用别的服务的方法后只返回响应体中数据转化的对象,基本可以理解为json

而restTemplate.getForEntity调用别的服务的方法后返回值包含响应中一些重要的信息,例如响应头、响应状态吗、响应体等。

二者区别如下代码

@GetMapping("/consumer/payment/get/{id}")    public CommonResult<Payment> getPayment(@PathVariable("id") Long id)    {        return restTemplate.getForObject(PAYMENT_URL "/payment/get/" id,CommonResult.class);    }    @GetMapping("/consumer/payment/getForEntity/{id}")    public CommonResult<Payment> getPayment2(@PathVariable("id") Long id)    {        ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL "/payment/get/" id,CommonResult.class);        if(entity.getStatusCode().is2xxSuccessful()){            return entity.getBody();        }else{            return new CommonResult<>(444,"操作失败");        }    }

Ribbon核心组件IRule

IRule负载规则替换方法

第一步:创建一个包myrule,里面创建一个配置类MySelfRule

@Configurationpublic class MySelfRule{    @Bean    public IRule myRule()    {        return new RandomRule();//定义为随机    }}

第二步:在主启动类上加注解@RibbonClient

@SpringBootApplication@EnableEurekaClient@RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration= MySelfRule.class)//CLOUD-PAYMENT-SERVICE是服务提供者的服务名,configuration= MySelfRule.class是配置类public class OrderMain80 {    public static void main(String[] args) {        SpringApplication.run(OrderMain80.class,args);    }}

轮询算法原理

来源:https://www.icode9.com/content-4-848551.html

(0)

相关推荐

  • SpringCloud 源码系列(4)—— 负载均衡 Ribbon(上)

    一.负载均衡1.RestTemplate在研究 eureka 源码上篇中,我们在 demo-consumer 消费者服务中定义了用 @LoadBalanced 标记的 RestTemplate,然后使 ...

  • 2021升级版微服务教程6—Ribbon使用+原理+整合Nacos权重+实战优化

    Ribbon基本使用 简介 Ribbon是一个客户端负载均衡工具,封装Netflix Ribbon组件,能够提供客户端负载均衡能力. 理解Ribbon最重要的就是理解客户端这个概念,所谓客户端负载均衡 ...

  • 07 | 负载均衡:如何使用 Ribbon 实现客户端负载均衡?

    前面我们通过几个课时详细介绍了基于 Eureka 的服务治理构建方式和实现原理.在服务治理技术体系中,服务的发现和调用往往是和负载均衡这个概念结合在一起的.Spring Cloud 中同样存在着与 E ...

  • Spring Cloud Ribbon服务路径的解析(一)

    一.RestTemplate 1.1简介 spring框架提供的RestTemplate类可用于在应用中调用rest服务,它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链 ...

  • 4、负载均衡:Ribbon、Feign

    Ribbon:负载均衡(基于客户端) 1.负载均衡以及Ribbon Ribbon是什么? Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端负载均衡的工具. ...

  • Soul的SPI以及负载均衡策略研究

    Soul的SPI以及负载均衡策略研究 上一节留下的几个问题在之后进行的研究 如何从abstractSoulPlugin执行完之后到WebClientPlugin的相同方法,是责任链模式还是其他的加载过 ...

  • 分布式事务+DDD+负载均衡+服务治理已撸!微服务不就这点事?

    Go语言中文网 今天 最近有看到"微服务,分久必合.合久必分"的言论,我同意,微服务不是架构演变的终点,细说还有Serverless.FaaS等方向.但纠结要不要拆分是没有必要的, ...

  • 老曹眼中的负载均衡

    什么是负载均衡 负载(load)一词起源于典型系统,指连接在电路中消耗电能的装置,负载(用电器)的功能是把电能转变为其他形式能.引申出来,一个是实体,一个转化. 于是,对于实体,有了通信帧或者报文中数 ...

  • 分布式事务 DDD 负载均衡 服务治理,微服务搞懂这些就够了?

    最近有看到"微服务,分久必合.合久必分"的言论,我同意,微服务不是架构演变的终点,细说还有Serverless.FaaS等方向.但纠结要不要拆分是没有必要的,拆往往是随着业务变化不 ...

  • 浅谈大型网站之负载均衡架构

    概念 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 负载均衡建 ...

  • Linux学习10-CentOS搭建nginx负载均衡环境

    前言 当自己的web网站访问的人越来越多,一台服务器无法满足现有的业务时,此时会想到多加几台服务器来实现负载均衡. 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,怎样将同一个域名的访问分散 ...