美文网首页
ribbon客户端负载均衡

ribbon客户端负载均衡

作者: 我是啵啵 | 来源:发表于2019-11-10 19:56 被阅读0次

在消费者中引入

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

写yml

server:
  port: 80

eureka:
  client:
    registerWithEureka: false # 服务注册,false表示不将本消费者注册到 Eureka 服务器
    fetchRegistry: true # 服务发现,true从 Eureka 服务器中获取注册信息
    serviceUrl:
      default

配置类上加上

  • 注解 @LoadBalanced
    加上了这个注解之后就配置了
    RestTemplate()的负载均衡 而且 可以不用域名的调用服务 而可以用对应服务在yml 中写的服务名称调用
    就实现了负载均衡
 */
@Configuration //标识配置类
public class ConfigBean {

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

}

配置类上标识@EnableEurekaClient


@SpringBootApplication
public class ProductConsumer_80 {

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

}


image.png

检测:
(http://localhost/consumer/product/list)

创建provider集群

  • 复制pom 的依赖

  • 改yml的端口

  • 数据库名
    不用改应用名称

    他是在数据库里面用了一个字段来存 数据库


    image.png

对应了不同数据库的访问


image.png image.png

但是是同一个服务 只会有一个服务名

feign 客户端接口调用

使用:

通过定义接口
接口上加注解 使用
就像 mapper 和service一样
就不用resettlement 进行远程调用了
导入pom

     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

复制 consumer 的pom和com包 yml
写service 接口 和provider里面的一样
删掉resettlement 的config 配置类

controller 上调

  @Autowired
   ProductClientService service;

    @RequestMapping(value = "/consumer/product/add")
    public boolean add(Product product) {
        return service.add(product);
    }

service 这里面只有接口 而且是再注册中心找指定了服务名称

  • 注意:
    接口上的参数必须有@之类的注解 spring mvc
    boolean add(@RequestBody Product product);
    Product get(@PathVariable("id") Long id);
  • 返回值为复杂数据类型时 类型中必须要有无参构造方法
    如下的: Product
@FeignClient(value = "microservice-product") //指定调用的微服务名称
public interface ProductClientService {

    @RequestMapping(value = "/product/add", method = RequestMethod.POST)
    boolean add(@RequestBody Product product);

    @RequestMapping(value = "/product/get/{id}", method = RequestMethod.GET)
    Product get(@PathVariable("id") Long id);

    @RequestMapping(value = "/product/list", method = RequestMethod.GET)
    List<Product> list();

}

启动类上

@EnableEurekaClient
@SpringBootApplication
//会扫描指定包下面使用@FeignClient标识的接口
@EnableFeignClients(basePackages = "com.mengxuegu.springcloud.service")

开启服务测试
然后关闭服务提供者
他自己的客户端就会自己熔断


image.png

相关文章

  • spring cloud6负载均衡

    一、负载均衡负载均衡不仅仅是ribbon,还包括zuul1,客户端的负载均衡:ribbon负载均衡作为客户端应用的...

  • Ribbon负载均衡服务调用

    SpringCloud Ribbon是Netfix Ribbon实现的一套客户端 负载均衡的工具。 (负载均衡...

  • Spring Cloud Ribbon

    Spring Cloud Ribbon 客户端负载均衡组件Ribbon 负载均衡就是当client端发送请求得时候...

  • 微服务 四:客户端负载均衡器

    客户端负载均衡简介 关于客户端负载均衡在“LB与服务发现”章节已做过介绍 4.2.Ribbon简介 Ribbon是...

  • Spring Cloud Ribbon源码分析

    客户端负载均衡 学习spring cloud ribbon的时候不得不提到客户端负载均衡。在客户端负载均衡中,所有...

  • Spring Cloud Ribbon

    概念 Ribbon是一个机遇Http和Tcp的客户端负载均衡工具。基于Netflix Ribbon实现。 负载均衡...

  • SpringCloud-Ribbon负载均衡

    Ribbon是SpringCloud提供的关于客户端负载均衡组件。 负载均衡 负载均衡设备可以分为硬件负载和软件负...

  • ribbon

    1.Ribbon 2.客户端负载均衡 3.服务端的负载均衡 4.负载均衡算法

  • Spring Cloud Ribbon 深入学习

    通过添加注释@LoanBalanced就开启了客户端负载均衡 Ribbon客户端负载均衡原理 对于一个客户端负载均...

  • 客户端负载均衡:Spring Cloud Ribbon

    Spring Cloud Ribbon属于客户端负载均衡,服务端负载均衡和客户端负载均衡最大的不同点在于服务清单所...

网友评论

      本文标题:ribbon客户端负载均衡

      本文链接:https://www.haomeiwen.com/subject/aithbctx.html