مكوك؟ مهجور لعدم الاهتمام
على الرغم من أن المشروع تم التخلي عنه حتى قبل بدء التطوير الإنتاجي ، يمكنك التقاط شيء جيد في هذا المشروع بنفسك
مشروع Shuttle هو مجموعة من الخدمات الدقيقة تعتمد في الغالب على Boot Spring للتحكم في سيارة أجرة فضاء. في إطار هذا المشروع ، تم تنفيذ وظائف مختلفة للعمل مع رحلات الفضاء والتفاعل بين الخدمات المجهرية.
كيفية إطلاق مشروع
لإطلاق مشروع المكوك ، اتبع هذه الخطوات:
المتطلبات الأساسية
تأكد من تثبيت البرنامج التالي على نظامك:
- يتألف Docker و Docker
- جافا 21 أو الأحدث
- Gradle 6.8 أو أحدث
الخطوة 1: إعداد قواعد البيانات
يتطلب المشروع قواعد بيانات PostgreSQL و MongoDB. يمكنك إما تثبيتها يدويًا أو إعدادها باستخدام Docker.
الخيار أ: تثبيت قواعد البيانات يدويًا
postgreSQL :
- قم بتنزيل وتثبيت postgresql من الموقع الرسمي.
- ابدأ خدمة postgresql.
مونغودب :
- قم بتنزيل وتثبيت MongoDB من الموقع الرسمي.
- ابدأ خدمة MongoDB.
الخيار ب: استخدم Docker لقواعد البيانات
- postgreSQL :
docker pull postgres:latest
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
- مونغودب :
export MONGODB_VERSION=6.0-ubi8
docker run --name mongodb -d mongodb/mongodb-community-server: $MONGODB_VERSION
الخطوة 2: Run Kafka ، Zookeeper ، Otel-Collector ، Prometheus ، Graphana.
cd docker
docker compose up
الخطوة 3: نشر إلى Maven Local
cd shared
./gradlew publishToMavenLocal
الخطوة 4: Run Discovery and Config Server
cd discovery-server
./gradlew bootRun
cd ../config-server
./gradlew bootRun
الخطوة 5: قم بتشغيل بقية الخدمات المجهرية واحدة في وقت واحد ، لأنها تناسبك
أعتذر عن مثل هذه المضايقات ، في المستقبل سيتم إطلاق جميع الخدمات المجهرية عبر Kybernetes
الخدمات المجهرية
تسرد القائمة التالية الخدمات المجهرية للمشروع مع حالة تنفيذها (قد تتغير هذه القائمة بانتظام بسبب إضافة الميزات الجديدة وإعادة إنشاء الهندسة المعمارية):
- خدمة التعليقات التجريبية وخدمة ملاحظات المستخدم (المنفذة ، وليس الاختبار) ✅
- خدمة معلومات المكوك (غير تنفيذها)؟
- خدمة المعلومات التجريبية (غير تنفيذ)؟
- خدمة معلومات المستخدم (لم يتم تنفيذها)؟
- خدمة الرتبة التجريبية (قيد التقدم)؟
- خدمة Finder Trip Path (قيد التقدم)؟
- خدمة حساب الرحلة (لم يتم تنفيذها)؟
- خدمة الدفع (غير المنفذة)؟
- خدمة البيانات الشخصية التجريبية (قيد التقدم)؟
- خدمة الطلب (غير تنفيذ)؟
- خدمة معلومات المحطة (لم يتم تنفيذها)؟
تتواصل الخدمات المصغرة مع بعضها البعض من خلال Apache Kafka ، والتي توفر تحديثات المراسلة والتصنيف.
وظائف؟
- حساب المسار من كوكب إلى آخر ، مع مراعاة حركته في المدار
- جمع التعليقات ومعالجتها من المستخدمين والطيارين.
- اختيار فئة الطيران.
- نظام الرتبة التجريبية.
- التحقق من البيانات الشخصية للطيارين.
- حساب تكلفة الرحلة بسبب طول وتعقيد الرحلة.
- تنفيذ خدمة الدفع مع الأخذ في الاعتبار لجنة المكوك (شكرًا لك على اختيارك! ؟؟؟).
- تطبيق React for Documentation ، باستخدام Flow Flow (إنه جميل جدًا ورائع !!!!)
الوظائف الممكنة
- محاكاة انهيار المكوك (دون تعريض حياة الركاب! ؟؟؟).
- التنفيذ في الفضاء ثلاثي الأبعاد ، بحيث يكون مثل ناسا: https://eyes.nasa.gov/apps/solar-system/#/home
بنيان
يستخدم المشروع التقنيات والمناهج التالية:
- صندوق الربيع لإنشاء الخدمات المجهرية. (هناك استثناءات ، على سبيل المثال ، مسار العثور على الخدمات الدقيقة)
- Apache Kafka لمعالجة الرسائل.
- Opentelometry ، Graphana ، Prometheus لمراقبة وتتبع.
- Docker & Kubernetes و Github إجراءات للنشر.
- PGSQL ، MongoDB ، Redis ، Cassandra كقواعد بيانات.
الرسوم البيانية والمقاييس
تصور عملية ترتيب المكوك
الرسم التخطيطي الذي سبق أن تم عرضه هنا غير صالح الآن
في المستقبل ، سيتم تنفيذ جميع الوثائق ، المخططات ، حسابات المقاييس مثل DAU ، MAU ، وهكذا سيتم تنفيذها كتطبيق رد فعل باستخدام تدفق رد الفعل ، لن يكون هناك المزيد من المخططات الدقيقة ؟؟؟
التثبيت والمتطلبات
لتشغيل المشروع ، ستحتاج إلى الأدوات والتبعيات التالية:
- جافا 17 أو في وقت لاحق
- Maven 3.8.1 أو أحدث
- Docker (اختياري ، للعمل مع الحاويات)
تأكد من تثبيت جميع التبعيات وتكوينها قبل بدء المشروع.
رخصة
لا تسرق أي شيء من فضلك ((((((
جهات الاتصال؟
إذا كان لديك أي أسئلة أو اقتراحات ، فيمكنك الاتصال بي عبر مشكلات GitHub أو عبر البريد الإلكتروني أو عن طريق Telegram.
المكوك هو سيارة أجرة في المستقبل ، مدفوعة بتقنيات الخدمات الصغيرة الحديثة!