首页 > 其他分享 >springcloud之ribbon请求重试

springcloud之ribbon请求重试

时间:2022-11-30 19:07:41浏览次数:106  
标签:服务 service springcloud 重试 true order ribbon

springcloud之ribbon请求重试_幂等

1-服务消费者order_service中application.yml中开启日志

server:
  port: 9002
spring:
  application:
    name: service-order
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
  jpa:
    database: MySQL
    show-sql: true
    open-in-view: true
#配置Eureka
eureka:
  client:
    service-url:
      defaultZone: http://localhost:9000/eureka/,http://localhost:8000/eureka/
  instance:
    prefer-ip-address: true #使用ip地址注册
#修改ribbon的负载均衡策略   服务名 - ribbon - NFLoadBalancerRuleClassName : 策略
#service-product:
#  ribbon:
#    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule

logging:
  level:
    root: debug

2-运行

springcloud之ribbon请求重试_mysql_02

关掉一个服务提供者,如9011

springcloud之ribbon请求重试_spring_03

重试机制

1-引入spring的重试组件(坐标)

给服务消费者order_service的pom.xml中添加依赖

        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>

2-对ribbon进行重试配置

服务消费者order_service的application.yml中添加ribbon的重试配置

service-product:     #服务名,如service-product,order-service...
  ribbon:
    MaxAutoRetries: 1 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试
    MaxAutoRetriesNextServer: 1 #切换实例的重试次数
    OkToRetryOnAllOperations: true # 对所有的操作请求都进行重试,如果是get则可以,如果是post,put等操作没有实现幂等的情况下是很危险的
    ConnectTimeout: 250 #请求连接的超时时间
    ReadTimeout: 1000 #请求处理的超时时间

停掉9011提供者时

springcloud之ribbon请求重试_其他_04

标签:服务,service,springcloud,重试,true,order,ribbon
From: https://blog.51cto.com/u_12528551/5900177

相关文章

  • springcloud之微服务架构
    微服务& 微服务架构微服务不等于微服务架构微服务  :  强调的是服务的大小,它关注的是某一个点,是具体解决某一个问题\提供落地对应服务的一个服务应用,狭义的......
  • springcloud之远程调用
        在微服务架构中,通常存在多个服务之间的远程调用的需求.远程调用通常包含两个部分:序列化和通信协议.常见的序列化协议包括json,xml,bytes等.目前主流的远程调用......
  • springcloud之CAP原理
    用来衡量分布式系统架构是否符合要求的重要指导方式.通过一致性,可用性,分区容忍性三个维度,来去衡量一个软件架构.CAP原理     C:一致性  ---多节点数据一致......
  • springcloud之模拟微服务环境
    创建聚合服务1-创建父功能newMavenProject修改pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="......
  • springcloud之注册中心概述
        微服务的注册中心:记录了服务和服务地址的映射关系.在分布式架构中,服务会注册到这里,当服务需要调用其他服务时,就在这里找到服务的地址,进行调用.注册中心包......
  • springcloud之Eureka概述
    Eureka是Netflix开发的服务发现框架,SpringCloud将它集成在自己的子项目spring-cloud-netflix中,实现SpringCloud的服务发现功能.Eureka的基础架构由3个角色组成:1-EurekaS......
  • springcloud之使用eureka例子
    搭建EurekaServer1-创建工程 eureka_server子模块2-导入坐标eureka_server的pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/P......
  • springcloud之使用eureka例子&实现高可用
    1-准备2(.../n)个EurekaServer,需要相互注册  1号server:9000  首先,将eureka_server子模块的resources中的application.yml修改如下server:port:9000#端口#配......
  • springcloud之eureka server启动原理
    /org/springframework/cloud/spring-cloud-netflix-eureka-server/2.1.0.RELEASE/spring-cloud-netflix-eureka-server-2.1.0.RELEASE.jar!/META-INF/spring.factories中 ......
  • springcloud之eureka client的启动流程
    eurekaclien向eurekaserver准备的web接口发送http请求,完成服务注册,获取...org/springframework/cloud/spring-cloud-netflix-eureka-client/2.1.0.RELEASE/spring-cloud......