مقدمة
Spring Cloud هو إطار كامل لتنفيذ الخدمات المجهرية بناءً على Boot Spring. يوفر المكونات المطلوبة لتطوير الخدمات المجهرية مثل إدارة التكوين ، واكتشاف الخدمة ، وقواطع الدوائر ، والتوجيه الذكي ، والمكافعين الدقيق ، والحافلة العالمية ، والأقفال العالمية ، وحملات القرار ، والجلسات الموزعة ، وإدارة الدولة. أهم شيء هو أنه إذا كنت تستخدمه مع إطار عمل Spring Boot ، فسوف يجعلك مريحًا للغاية لتطوير الخدمات السحابية مع بنية الخدمات الصغيرة. يحتوي Spring Cloud على الكثير من الأطر الفرعية ، من بينها SPRING CLOUD Netflix أحد الأطر التي طورتها Netflix وتم دمجها لاحقًا في عائلة Spring Cloud. تتضمن وحداتها الرئيسية: اكتشاف الخدمة ، قواطع الدوائر والمراقبة ، التوجيه الذكي ، موازنة تحميل العميل ، إلخ.
ستقدم هذه المقالة لك المحتوى ذي الصلة لمهلة مكونات Spring Cloud ، ومشاركتها للرجوع إليها وتعلمك. لن أقول الكثير أدناه ، دعنا نلقي نظرة على المقدمة التفصيلية معًا.
مهلة الشريط
الإعدادات العالمية:
الشريط: readtimeout: 60000ConnectTimeout: 60000
الإعدادات المحلية:
معرف الخدمة: الشريط: readtimeout: 1000ConnectTimeout: 1000
من بينها ، معرف الخدمة هو اسم المضيف الظاهري الذي يستخدمه الشريط ، والذي يعتبر عمومًا نفس اسم الخدمة المسجل على خادم Eureka ، أي أنه نفس spring.application.name .
مهلة التظاهر
بدءًا من Spring Cloud Edgware ، يدعم Feign تكوين الموعد مع الخصائص:
Feign: Client: Config: FeignName: ConnectTimeout: 5000 readtimeout: 5000
بالنسبة للإصدار القديم ، يمكنك كتابة feign.Request.Options ، الرجوع إلى: org.springframework.cloud.netflix.feign.ribbon.FeignRibbonClientAutoConfiguration#feignRequestOptions طريقة الكتابة.
مهلة RestTemplate
في بعض الأحيان ، قد نستخدم RestTemplate ، على سبيل المثال
@bean@loadBalancedPublic RestTemplate RestTemplate () {return New RestTemplate () ؛}في هذا الوقت ، يمكن تعيين المهلة بالطريقة التالية:
@bean@loadbalancedpublic resttemplate resttemplate () {simpleClientHttpRequestFactory SimpleClientHttPrequestFactory = جديد SimpleClientHttPrequestFactory () ؛ simpleClientHttPrequestFactory.setConnectTimeout (1000) ؛ simpleClientHttprequestfactory.setReadTimeout (1000)مهلة زول
مهلة Zuul أكثر تعقيدًا لأن Zuul يدمج الشريط و Hystrix. فيما يلي حالتان:
إذا كان مسار Zuul يستخدم الشريط
ثم: ترتبط مهلة Zuul بشريط و Hystrix. في هذا الوقت ، يمكن تكوين مهلة Zuul بشكل مشابه لما يلي:
Hystrix: الأمر: الافتراضي: التنفيذ: العزلة: الموضوع: TimoutinMillisEconds: 1000Ribbon: readtimeout: 1000 ConnectTimeout: 1000
تحليل الكود: في هذه الحالة ، يكون المرشح المستخدم لإعادة توجيه Zuul هو org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter ، الذي يدمج Hystrix و Ribbon.
إذا كان مسار زول لا يستخدم الشريط
على سبيل المثال: تكوين توجيه Zuul كما يلي:
Zuul: المسارات: user-route: # في طريقة التكوين هذه ، يمنح المستخدم فقط المسار اسمًا ويمكن تسميته في الإرادة. عنوان URL: http: // localhost: 8000/ # مسار URL المحدد:/user/** # المسار المقابل لعنوان url.
بعد ذلك ، ترتبط مهلة Zuul في هذا الوقت فقط بالتكوين التاليين:
Zuul: المضيف: Socket-timeout-millis: 10000 Connect-timeout-millis: 2000
تحليل الكود: لا يتم استخدام طريقة تكوين URL مباشرة للشريط أو Hystrix. المرشح المستخدم في إعادة توجيه Zuul هو org.springframework.cloud.netflix.zuul.filters.route.SimpleHostRoutingFilter . في هذا المرشح ، يستخدم Zuul Apache httpclient لإعادة توجيهه.
في السيناريوهات الحقيقية ، في بعض الأحيان يمكن استخدام طريقتين للتوجيه مجتمعين ، لذلك يوصى بتكوين جميع السمات المذكورة أعلاه.
مهلة Hystrix
Hystrix: الأمر: الافتراضي: التنفيذ: المهلة: تمكين: العزل الحقيقي: الموضوع: TimeOtinMillisEconds: 1000
على النحو الوارد أعلاه ، فإن المهلة الافتراضية لـ Hystrix هي ثانية واحدة. يتم تمكين آلية المهلة بشكل افتراضي. لإيقاف مهلة Hystrix ، قم بتعيين xxx.enabled على False.
نصائح
إذا تم استخدام أحد المكون مع Hystrix ، فمن المستحسن عمومًا أن المهلة المهنية Hystrix> مهلة مكونات أخرى ، وإلا فقد يتسبب ذلك في فشل ميزة إعادة المحاولة.
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.