En primer lugar, el reintento aquí no es un reintento después de que se informa un error, pero un reintento a otra instancia después de que el cliente de equilibrio de carga encuentra que la instancia de solicitud remota no está disponible.
@Bean@loadBalancedRestTemplate RestTeMplate () {httpComponentsClientHttpRequestFactory httprequestFactory = new httpComponentsClientHttPrequestFactory (); httprequestFactory.SetReadTimeOut (5000); httprequestFactory.setConnectTimeOut (5000); devolver nuevo RestTemplate (httprequestFactory);}FIN Mecanismo de reintento
Feign está reintando la configuración a través del readrantador empaquetado por sí mismo, y el valor predeterminado es 5 veces
paquete Feign; import static java.util.concurrent.timeunit.seconds;/*** clonado para cada invocación a {@link cliente#ejecute (request, feign.request.options)}. * Las implementaciones pueden mantener el estado para determinar si las operaciones de reintento deben continuar o no. * /Riterador de interfaz pública se extiende clonable { /*** Si se permite el reintento, return (posiblemente después de dormir). De lo contrario, propague la excepción. */ void continuoPropagate (retryableableException e); Ritrander Clone (); Public static class predeterminada implementa el readryer {private final int maxattempts; período largo privado largo; Private Final Long Maxperiod; int intento; Long SleptFormillis; Public Default () {this (100, Seconds.Tomillis (1), 5); } Previa Predeterminado (período largo, Long Maxperiod, int maxattempts) {this.period = período; this.maxperiod = maxperiod; this.maxattempts = maxattempts; this.attempt = 1; } Feign Cancel Reinty
@Bean Retryer FeignRetryer () {return readryer.Never_pryry; } Configuración de tiempo de espera de solicitud de solicitud
@Beanrequest.options requestOptions (configurableNenVironment env) {int ribbonreadtimeout = env.getProperty ("ribbon.readtimeout", int.class, 6000); int ribbonConnectionTimeOut = env.getProperty ("ribbon.connecttimeout", int.class, 3000); devolver nuevo request.options (RibbonConnectionTimeOut, RibbonReadtimeOut);}Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.