میکروسرویس و برنامههای مبتنی بر ابر شما باید شکستهای جزئی را که مطمئناً در نهایت اتفاق میافتند، بپذیرند. شما باید برنامه خود را طوری طراحی کنید که در برابر آن شکست های جزئی مقاوم باشد.
تاب آوری توانایی بازیابی از شکست ها و ادامه عملکرد است. این در مورد اجتناب از شکست نیست، بلکه پذیرش این واقعیت است که خرابی ها اتفاق می افتد و به آنها پاسخ می دهیم به گونه ای که از خرابی یا از دست دادن داده ها جلوگیری می کند. هدف انعطافپذیری این است که برنامه پس از شکست به حالت کاملاً کارآمد برگردد.
طراحی و استقرار یک اپلیکیشن مبتنی بر میکروسرویس به اندازه کافی چالش برانگیز است. اما شما همچنین باید برنامه خود را در محیطی اجرا کنید که نوعی شکست قطعی است. بنابراین، برنامه شما باید انعطاف پذیر باشد. باید طوری طراحی شود که با خرابی های جزئی، مانند قطع شدن شبکه یا خرابی گره ها یا ماشین های مجازی در فضای ابری مقابله کند. حتی میکروسرویس ها (کانتینرها) که به یک گره متفاوت در یک خوشه منتقل می شوند می توانند باعث خرابی های کوتاه متناوب در برنامه شوند.
بسیاری از مؤلفه های فردی برنامه شما باید ویژگی های نظارت بر سلامت را نیز در خود داشته باشند. با پیروی از دستورالعملهای این فصل، میتوانید برنامهای ایجاد کنید که بهرغم خرابیهای گذرا یا سکسکههای معمولی که در استقرارهای پیچیده و مبتنی بر ابر رخ میدهد، بهراحتی کار کند.
مهم
eShopOnContainer تا زمان انتشار 3.0.0 از کتابخانه Polly برای پیاده سازی انعطاف پذیری با استفاده از Typed Clients استفاده می کرد.
با شروع نسخه 3.0.0، انعطافپذیری تماسهای HTTP با استفاده از یک شبکه Linkerd پیادهسازی میشود، که تلاشهای مجدد را به صورت شفاف و قابل تنظیم، در یک خوشه Kubernetes، بدون نیاز به رسیدگی به این نگرانیها در کد، انجام میدهد.
کتابخانه Polly همچنان برای افزودن انعطاف پذیری به اتصالات پایگاه داده، به ویژه هنگام راه اندازی سرویس ها استفاده می شود.
هشدار
تمام نمونه کدها و تصاویر موجود در این بخش قبل از استفاده از Linkerd معتبر بودند و برای نشان دادن کد واقعی فعلی به روز نمی شوند. بنابراین آنها در زمینه این بخش معنا پیدا می کنند.
- ۰۱/۱۱/۲۹