بادئ ذي بدء ، فإن إعادة المحاولة هنا ليست إعادة محاولة بعد الإبلاغ عن خطأ ، ولكن إعادة المحاولة إلى مثيل آخر بعد أن تجد عميل موازنة التحميل أن مثيل الطلب عن بُعد غير متوفر.
@bean@loadBalancedRestTemplate restTemplate () {httpcomponentsclienthttprequestfactory httprequestfactory = new httpcomponentsclienthttprequestfactory () ؛ httprequestfactory.setReadTimeout (5000) ؛ httprequestfactory.setConnectTimeout (5000) ؛ إرجاع RestTemplate جديد (httprequestfactory) ؛}آلية إعادة المحاولة التظاهر
تبرز إعادة محاولة التكوين من خلال إعادة المحاولة التي يتم تعبئتها بنفسها ، والافتراضي هو 5 مرات
Package Feign ؛ Import static java.util.concurrent.timeunit.seconds ؛/*** تم استنساخه لكل استدعاء إلى {link client#execute (request ، feign.request.options)}. * قد تبقي التطبيقات الدولة لتحديد ما إذا كانت عمليات إعادة المحاولة يجب أن تستمر أم لا. * /reception الواجهة العامة يمتد استنساخ { /*** إذا تم السماح بإعادة المحاولة ، فالتراجع (ربما بعد النوم). خلاف ذلك نشر الاستثناء. */ void ontearorpropagate (RetryableException e) ؛ إعادة المحاولة استنساخ () ؛ الفئة الثابتة العامة تنفذ Retryer {Private Final int maxattempts ؛ الفترة النهائية الطويلة الخاصة ؛ نهائي خاص طويل maxperiod. محاولة نام منذ فترة طويلة. الافتراضي العام () {this (100 ، seconds.tomillis (1) ، 5) ؛ } الافتراضي العام (الفترة الطويلة ، الطويل maxperiod ، int maxattempts) {this.period = period ؛ this.maxperiod = maxperiod ؛ this.maxattempts = maxattempts ؛ this.attempt = 1 ؛ } تظاهر إلغاء إعادة المحاولة
Bean Retryer feignretryer () {return recept.never_retry ؛ } تظاهر طلب المهلة إعداد المهلة
@beanrequest.options requestOptions (envableenvironment env) {int ribbonReadTimeOut = env.getProperty ("ribbon.readtimeout" ، int.class ، 6000) ؛ int RibbonConnectionTimeOut = env.getProperty ("ribbon.connecttimeout" ، int.class ، 3000) ؛ إرجاع طلب جديد.ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.