محتويات الدورة

Spring Boot / المتقدم: المراقبة والإصدارات المتينة / الدرس 15

HTTP الصادر وميزانية المتانة

قيّد عميل Spring وصنف النتائج البعيدة واختر الإعادة والبديل وفق معنى العملية لا التقاط استثناء عام.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • ضبط مهلة اتصال وقراءة مقصودتين.
  • فصل أمان الإعادة من فشل النقل.
  • حفظ الثقة والمراقبة وميزانية الموارد.

النداء البعيد حد فشل مستقل

حدد القدرة والعنوان المسموح والاعتماد والتمثيل والمهلة والخطأ قبل اختيار العميل. توفر Framework6.2 عميل RestClient المتزامن وغيره لبنى أخرى، فلا تخلط واجهة أحدث بأساس 3.5. لا يثبت وجود العميل في السياق توفر التابع.

قد تكتمل كتابة بعيدة قبل فقد ردها؛ فلا تعني المهلة تراجعاً أوأمان إعادة. ميّز الفشل من فراغ مشروع أو سعر صفر. احفظ غموض العمل بدلاً من اختراع بيانات تواصل المسار السعيد، وحدد من يملك مصالحة النتيجة في العقد.

اضبط مصنع الطلب الفعلي المختار

يضبط الجزء مهلة الاتصال والقراءة بمصنع JDK ويستخدم Builder المحقونة من Boot، فلا يفترض تخصيص كل منشئ مستقل. عنوان example.test المحجوز توضيحي ولم يُتصل به. لم يُنشأ عميل أوسياق هنا ويبقى الجزء غير قابل للتشغيل.

تختلف مراحل DNS وانتظار الاتصال و TLS والقراءة والموعد الكلي في ضوابطها. قد تتجاوز ثلاث محاولات طويلة ميزانية الطالب. طابق دلالة الخلفية واختبر ببيئة مضبوطة عند السماح؛ ولا تجهز الدورة خدمة بعيدة أو مستمعاً أوحمل اختبار.

java ضبط RestClient محدود توضيحي
package training.catalog;

import java.net.http.HttpClient;
import java.time.Duration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.JdkClientHttpRequestFactory;
import org.springframework.web.client.RestClient;

@Configuration(proxyBeanMethods = false)
class InventoryClientConfiguration {
    @Bean
    RestClient inventoryClient(RestClient.Builder builder) {
        var transport = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(1)).build();
        var factory = new JdkClientHttpRequestFactory(transport);
        factory.setReadTimeout(Duration.ofSeconds(2));
        return builder.baseUrl("https://inventory.example.test")
            .requestFactory(factory).build();
    }
}

تُعلن الخلفية والمهلة دون تنفيذ DNS أو TLS أوطلب أوسياق.

افحص قابلية التكرار قبل عدد الإعادات

يسمح النموذج بإعادة محدودة لردود GET/HEAD مختارة أوعقد خادم يضمن التكرار، ويرفض POST غير الآمن ويقف عند الثالثة. إنه سياسة صغيرة لا مكتبة Spring، ولا يثبت أن ترويسة وحدها تؤمن الكتابة. تُختبر قيمه محلياً.

يحتاج التطبيق تأخيراً وعشوائية وموعداً وإلغاء وحد تزامن، مع تصنيف احتمال اكتمال البعيد. قد يوقف قاطع الدائرة تكرار الفشل ولا يعوض المهلة أوالسعة أوالصحة. اختر مكتبة متوافقة صراحة؛ فوسم إعادة من إصدار آخر ليس سلوك Boot أساسياً تلقائياً.

java نموذج قرار إعادة محدود مستقل
public class Main {
static boolean retry(String method,boolean establishedIdempotency,int attempt,int status) {
 boolean repeatable=method.equals("GET")||method.equals("HEAD")||establishedIdempotency;
 return attempt<3 && repeatable && (status==429||status==503);
}
 public static void main(String[] args) throws Exception {
System.out.println(retry("GET",false,1,503));
System.out.println(retry("POST",false,1,503));
System.out.println(retry("POST",true,3,503));
 }
}
الناتج المتوقع
true
false
false

تعيد السياسة true,false,false دون HTTP أو إثبات ضمان خادم حقيقي.

أظهر ثقة الوجهة والبيانات البعيدة

اختر أساساً موثوقاً ومسارات معتمدة لا URL اعتباطية من الطالب كوكيل عام. اربط قيم URI أو شفرها بواجهة العميل وافحص المجال. احفظ تحقق الشهادة وعمر الاعتماد، ولا تعطل TLS أوتسجل Authorization لتفسير فشل.

قد ترمي retrieve أخطاء HTTP؛ حول المتوقع قصداً ولا تعِد null لكل فشل. افحص الحجم والوسيط والمطلوب والمعنى. لا تجعل تعطل المخزون صفراً أووفرة بلا حد إلا بسياسة منتج مبررة صراحة، واحفظ سبباً مقيداً للتشخيص بدل كشفه في الرد.

اختبر الحد بردود مضبوطة

استخدم مصنعاً أوخادماً وهمياً متوافقاً أوطريقة معزولة معتمدة لفحص URI والترويسة والتحويل والحالة والمهلة وعد الإعادة دون خدمات. ميّز جسماً وهمياً ناجحاً من صحة التابع. افحص الإلغاء ونفاد المحاولات وفشلاً صادقاً دون أثر غير قابل للعكس مكرر.

اربط الزمن والنتيجة بمراقبة واعية بـ Boot ووسوم محدودة وهوية آمنة. تجنب إعادات متعددة الطبقات تضاعف المحاولات. حدد ما يتكرر ولماذا يأمن ومدته وبديله الصادق وكيف تصالح إكمالاً بعيداً مجهولاً، لا مجرد التقاط استثناء والاستمرار.

الأخطاء الشائعة وإصلاحها

كررت المهلة كتابة بعيدة.

لماذا يحدث؟
عُد الغموض فشلاً مؤكداً.
كيف تصلحه؟
صالح هوية عملية متفقاً عليها قبل الإعادة.
كيف تتجنب تكراره؟
اختبر فقد الرد.

اختلق البديل سعراً معقولاً.

لماذا يحدث؟
حُول فشل التابع إلىبيانات.
كيف تصلحه؟
أعد عدم توفر أو بديلاً مبرراً.
كيف تتجنب تكراره؟
اختبر الفشل والصفر منفصلين.

لم تطابق المدة المهلة.

لماذا يحدث؟
خص الخيار مرحلة أوخلفية أخرى.
كيف تصلحه؟
افحص المصنع والموعد الكلي.
كيف تتجنب تكراره؟
تحقق بردود مضبوطة عند السماح.

اختبر فهمك

1. لماذا لا تكفي ثلاث محاولات؟

اعرض الحل المشروح

لا تحدد الأمان والموعد والمهلة والتأخير والإلغاء والحمل والغموض. عرّفها معاً وافحص تضاعف الطبقات؛ تبقى ثلاث كتابات غير آمنة كذلك.

2. هل يثبت رد وهمي صحيح توفر البعيد وتفويضه؟

اعرض الحل المشروح

لا؛ يختبر التحويل المختار. تحتاج الشبكة والاعتماد والشهادة والسياسة والصحة دليلاً مخولاً، ولا تسمّ الوهمي نداءًمرصوداً.

أهم ما تعلمته

  • المهلة لا تثبت عدم الإكمال البعيد.
  • تحتاج الإعادة أمان معنى وميزانية كلية.
  • يحمي البديل الصادق والدليل المضبوط الصحة.

المراجع الرسمية