چگونه برنامه‌های واکنش‌گرایانه و WebFlux را با Prometheus، Grafana و InfluxDB ایمن کنیم

1. مقدمه

در سال‌های گذشته، ما شاهد علاقه فزاینده‌ای به استفاده از برنامه‌های کاربردی ایمن و واکنش‌پذیر کردن آنها بوده‌ایم. برای این کار، فناوری‌های زیادی در طول سال‌ها توسعه یافته‌اند و امروزه به نظر می‌رسد محبوب‌ترین آنها Spring است WebFlux و Kotlin Coroutines. همانطور که در این مقاله نشان خواهم داد، هر دو فناوری مکمل یکدیگر هستند و می توانند در یک اکوسیستم JVM زندگی کنند. همانطور که احتمالاً قبلاً متوجه شده اید، بارها بحث هایی در مورد اینکه کدام یک از آنها بهترین عملکرد را ارائه می دهد وجود دارد، اما اساساً هر دوی آنها یک اصل را فرض می کنند، یعنی اجتناب از هر چیزی که تا حد امکان مسدود می شود. WebFlux با استفاده از الگوی Observer استفاده می کند Flux و Mono برای تحویل مجموعه ها و اشیاء تک و Coroutines استفاده کنید Flow و به ترتیب عملکردها را به حالت تعلیق درآورید تا دقیقاً همان عملکردها را ارائه دهید.

در این مقاله، ما به یکی از راه‌های متعدد برای نظارت دقیق بر رفتار برنامه‌ها و استفاده از Prometheus به‌عنوان جداکننده داده، InfluxDB به‌عنوان مکانیزم ماندگاری و Grafana برای تجسم داده‌هایمان نگاه خواهیم کرد. پروژه این مقاله در GitHub قرار دارد. هنگامی که یک برنامه توسعه می‌یابد، این فرض که می‌توانیم مستقیماً به سمت تولید حرکت کنیم، زیرا تست‌های واحد (TDD – Test Driven Development) و تست‌های یکپارچه سازی انجام نشدند…

Source link