java B2B2C 多租户电子商城系统-Spring Cloud常见问题与总结(三)

简介: 一.Spring Cloud各组件重试Spring Cloud各组件的重试配置。早期,Spring Cloud的重试机制是比较混乱的-各个组件都有自己的重试机制,例如Ribbon、Feign、Zuul。

一.Spring Cloud各组件重试

Spring Cloud各组件的重试配置。

早期,Spring Cloud的重试机制是比较混乱的-各个组件都有自己的重试机制,例如Ribbon、Feign、Zuul。官方也意识到了这个问题,并对重试相关逻辑进行了改造与简化。

在Spring Cloud Edgware中,配置重试是非常简单的。

重试步骤

1.重试依赖spring-retry,因此引入重试依赖

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

2.配置重试

<client>
  ribbon:
    # 同一实例最大重试次数,不包括首次调用
    MaxAutoRetries: 1 
    # 重试其他实例的最大重试次数,不包括首次所选的server
    MaxAutoRetriesNextServer: 2 
    # 是否所有操作都进行重试
    OkToRetryOnAllOperations: false

其中是Ribbon Client名称,表示对指定名称的Ribbon Client进行重试。如果省略,则表示对所有Ribbon Client都进行重试。

3.对于Zuul,重试特性默认关闭。可使用zuul.retryable=true全局打开重试,也可使用zuul.routes..retryable=true打开指定重试。

 基于HTTP响应码重试

Spring Cloud也支持基于HTTP响应码进行重试,只需使用类似如下的配置即可:

<clientName>:
  ribbon:
    retryableStatusCodes: 404,502

关闭重试

1.对于其它组件,可配置spring.cloud.loadbalancer.retry.enabled=false.

2.对于zuul,可配置zuul.retryable=false或zuul.routes..retryable=true.

注意点

Hystrix的超时时间必须大于超时的时间,否则,一旦Hystrix超时,就没办法继续重试了。

一般来说,不建议将ribbon.OkToRetryOnAllOperations 设为true。因为一旦启用该配置,则表示重试任何操作,包括POST请求,而由于缓存了请求体,此时可能会影响服务器的资源。 java B2B2C 多租户电子商城系统

目录
相关文章
|
3月前
|
传感器 小程序 搜索推荐
(源码)java开发的一套(智慧校园系统源码、电子班牌、原生小程序开发)多端展示:web端、saas端、家长端、教师端
通过电子班牌设备和智慧校园数据平台的统一管理,在电子班牌上,班牌展示、学生上课刷卡考勤、考勤状况汇总展示,课表展示,考场管理,请假管理,成绩查询,考试优秀标兵展示、校园通知展示,班级文化各片展示等多种化展示。
72 0
(源码)java开发的一套(智慧校园系统源码、电子班牌、原生小程序开发)多端展示:web端、saas端、家长端、教师端
|
2月前
|
JavaScript 前端开发 Java
(JAVA)一套成熟在用的智能化产科电子病历系统,源码交付可直接上项目
在人类探索与人性化的产科管理系统的征途中,我们深知每一步都承载着对未来新生命健康与家庭幸福的深切关怀。
26 0
(JAVA)一套成熟在用的智能化产科电子病历系统,源码交付可直接上项目
|
2月前
|
JavaScript 前端开发 Java
Java语言+前后端分离 数字化产科管理平台 产科电子病历系统源码
Java开发的数字化产科管理系统,已在多家医院实施,支持直接部署。系统涵盖孕产全程,包括门诊、住院、统计和移动服务,整合高危管理、智能提醒、档案追踪等功能,与HIS等系统对接。采用前后端分离架构,Java语言,Vue前端,MySQL数据库。优势在于提升就诊效率,降低漏检率,自动报表生成,减少重复工作,支持数据研究,并实现医院与卫计委平台的数据互通,打造全生育周期健康服务。
45 0
|
3月前
|
安全 小程序 Java
基于Java医院门诊互联电子病历管理信息系统设计和实现(源码+LW+调试文档+讲解等)
基于Java医院门诊互联电子病历管理信息系统设计和实现(源码+LW+调试文档+讲解等)
|
3月前
|
前端开发 JavaScript Java
计算机Java项目|基于Web的电子产品销售系统设计与实现
计算机Java项目|基于Web的电子产品销售系统设计与实现
|
Java 应用服务中间件 程序员
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率5(JAVA 小虚竹)
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率5(JAVA 小虚竹)
119 0
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率5(JAVA 小虚竹)
|
Java 程序员 应用服务中间件
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率3(JAVA 小虚竹)
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率3(JAVA 小虚竹)
138 0
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率3(JAVA 小虚竹)
|
Java 程序员
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率(JAVA 小虚竹)
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率(JAVA 小虚竹)
145 0
高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率(JAVA 小虚竹)
|
5天前
|
存储 缓存 安全
【Java面试题汇总】多线程、JUC、锁篇(2023版)
线程和进程的区别、CAS的ABA问题、AQS、哪些地方使用了CAS、怎么保证线程安全、线程同步方式、synchronized的用法及原理、Lock、volatile、线程的六个状态、ThreadLocal、线程通信方式、创建方式、两种创建线程池的方法、线程池设置合适的线程数、线程安全的集合?ConcurrentHashMap、JUC
【Java面试题汇总】多线程、JUC、锁篇(2023版)
|
16天前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
79 6
【Java学习】多线程&JUC万字超详解