zoukankan      html  css  js  c++  java
  • Ribbon使用

    1.Ribbon是什么?

     

     2.订单服务使用Ribbon调用支付服务

    上一节我们已经搭建了支付服务,现在我们搭建订单服务

    1.pom

    我们可以发现  

    spring-cloud-starter-netflix-eureka-client 这个里面已经集成了Ribbon

    2.yml

    server:
    port: 80
    spring:
    application:
    name: cloud-consumer-service #服务名
    eureka:
    client:
    #表示是否将自己注册进EurekaServer默认为true
    register-with-eureka: true
    #是否从EurekaServer抓取已有的注册信息,默认为true,单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
    fetch-registry: true
    service-url:
    defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka #集群版
    #defaultZone: http://localhost:7001/eureka 单机版

    3.启动类

    @SpringBootApplication
    @EnableEurekaClient
    @RibbonClient(name = "CLOUD-PAYMENT-SERVICE")
    public class OrderMain80 {
    public static void main(String[] args) {
    SpringApplication.run(OrderMain80.class,args);
    }
    }

    4.控制层

     

    5.使用RestTemplate

    @Configuration
    public class ApplicationContextConfig {
    @Bean
    @LoadBalanced //使用默认的Ribbon轮询机制
    public RestTemplate restTemplate(){
    return new RestTemplate();
    }
    }

    这样就实现了Ribbon +RestTemplate
    Ribbon和Eureka整合后可以直接调用服务而不用再关心ip地址和端口号

    3.支付服务集群

    Ribbon使用了轮询那么就需要 支付方使用集群才能起到负载均衡的作用

    8002的配置和8001是一样的。端口的位置改一下就好

    服务名一定要一样的,如下所示,说明我们集群搭建成功



    4.自定义负载均衡算法:

    方式一:在springboot主程序扫描的包外定义配置类,然后为springboot主程序添加 @RibbonClient 注解引入配置类。

    配置类不应该在SpringBoot的包路径下,通过@RibbonClient 注解加载:@Configurationpublic class MySelfRule {
        @Bean
    public IRule myRule(){
    return new RandomRule();//定义为随机
    }
    }

    springboot主程序:
    @SpringBootApplication
    @EnableEurekaClient
    //在启动该微服务的时候就能去加载我们的自定义Ribbon配置类,从而使配置生效
    @RibbonClient(name = "CLOUD-PAYMENT-SERVICE",configuration = MySelfRule.class)
    public class OrderMain80 {
    public static void main(String[] args) {
    SpringApplication.run(OrderMain80.class,args);
    }
    }
     
    方式二 自定义LoadBalance:

    controller层使用

     

    这期结束了,下期再会!




  • 相关阅读:
    Objective-C中的Block回调模式
    [LINUX-02]linux内存管理
    Linux设备模型(8)_platform设备
    Face Alignment
    dlib 人脸识别论文 One Millisecond Face Alignment with an Ensemble of Regression Trees
    linux内核函数kmap_atomic用法
    [LINUX-01]对比LINUX和CORTEX-M启动流程
    -02-建立PetaLinux工程
    linux内核启动流程(文章最后流程图)
    uboot笔记:uboot命令分析+实现
  • 原文地址:https://www.cnblogs.com/fuqiang-zhou/p/12667543.html
Copyright © 2011-2022 走看看