حساب Alibaba Cloud: برنامج تعليمي لنشر مشروع Spring Cloud استنادًا إلى بنية الخدمات الصغيرة الأصلية لـ Ali Yunyun

سحابة 2026-05-28 阅读 15
1

هناك العديد من البرامج التعليمية حول نشر الخدمات المصغرة في السوق. بمجرد ظهرك ، يمكنك بناء Nginx و Nacos و Sentinel و Zipkin على الخادم... بعد مجموعة من اللكمات المركبة ، انفجرت ذاكرة الخادم ، ويمكن لملفات التكوين المختلفة أن تقذف الناس نصف حياتهم.

في عصر السحابة الأصلية ، من غير الفعال جدًا اللعب بهذه الطريقة. قامت Alibun بالفعل بإنشاء قاعدة خدمة صغيرة (مركز التسجيل ، مركز التكوين ، البوابة ، الحد الأدنى من التدفق)

خدمات الاستضافة السحابية الأصلية

.

اليوم هذا البرنامج التعليمي لا يتحدث عن النظريات المعمارية المعقدة ، ولا يتحدث عن الهراء. نحن مباشرة مع معيار واحد

مشروع Spring Cloud MicroServices

على سبيل المثال ، يأخذك إلى الطريقة الأكثر تأريخًا للقتال الفعلي ،

استنادًا إلى بنية Ali Yunyun الأصلية (MSE ACK/SAE) ، يتم نشر وتشغيل الخدمات المصغرة من الصفر

.

تصميم العمارة الأساسية

قبل القيام بذلك ، ألق نظرة على طوبولوجيا نشر الخدمات الصغيرة السحابية الأصلية التي نريد تحقيقها:

[طلب العميل]

[بوابة Ali Yunyun الأصلية (MSE)] ── (خدمة الاكتشاف التلقائي) ──> [MSE Nacos]

│ │

├ ──> [Microservices A (تطبيق خفيف الوزن/SAE)] <──────────────

│ │

───> [Microservice B (تطبيق خفيف الوزن/SAE)] <────────────────

الطريقة التقليدية هي تثبيت Nacos و Gateway على ECS بنفسك ، في حين أن النهج السحابي الأصلي هو استخدام Ali Cloud مباشرة

الذي

MSE (محرك الخدمات الصغيرة)

و

SAE (محرك التطبيق Serverless)

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

الخطوة الأولى: تحويل رمز الخدمات الصغيرة (مناسب للسحابة الأصلية)

لنقل مشروع Spring Cloud الذي يتم تشغيله محليًا إلى السحابة ، يجب عليك أولاً تعديل ملف التكوين والسماح له بالربط مع Nacos المستضافة لـ Alibabic Cloud.

1-إدخال التبعية

تأكد من أنك

Pom. xml

تم تقديم الاعتماد القياسي على Spring Cloud Alibaba:

XML

<Dependency>

<GroupId> com.alibaba.cloud</groupId>

<ArtifactId> spring-cloud-starter-alibaba-nacos-discovery</artifactId>

</Dependency>

<Dependency>

<GroupId> com.alibaba.cloud</groupId>

<ArtifactId> spring-cloud-starter-alibaba-nacos-config</artifactId>

</Dependency>

2. تعديل ملف التكوين

محليًا ، عادةً ما نكتب عنوان Nacos على أنه ميت

Localhost: 8848

. ولكن في عمليات النشر السحابية الأصلية ، نحن

لا تكتب أي مسار IP في التعليمات البرمجية

. الحقن الديناميكي باستخدام متغيرات البيئة مباشرة:

YAML

# Bootstrap. yml أو application.yml

Spring:

Application:

Name: order-service # اسم الخدمة الخاصة بك

Cloud:

Nacos:

Discovery:

Server-addr: ${NACOS_SERVER_ADDR:localhost:8848} # أولوية قراءة متغيرات البيئة

Namespace: ${NACOS_NAMESPACE:public}

Config:

Server-addr: ${NACOS_SERVER_ADDR:localhost:8848}

File-extension: yaml

💡لماذا تكتب مثل هذا ؟ من خلال كتابة $ {اسم المتغير: القيمة الافتراضية} ، إذا لم يتم نقل متغيرات البيئة أثناء التطوير المحلي ، فلا يزال يتم تمرير localhost ؛ وعندما يتعلق الأمر بالسحابة ، ستساعدنا المنصة السحابية تلقائيًا في حقن عنوان مجموعة سحابة Ali الحقيقي وتحقيق الكود "مجموعة من التجميع والتشغيل في كل مكان".

الخطوة الثانية: فتح وتكوين MSE Nacos في Alibian (دقيقة واحدة)

الآن نذهب إلى Aliyun للحصول على "عقل" الخدمة المصغرة-مركز التسجيل ومركز التكوين.

قم بتسجيل الدخول إلى Alibaba Cloud Console ، وابحث عن "محرك الخدمات الدقيقة MSE".

انقر على "إدارة المثيل" $ \ rightarrow $ "إنشاء مثيل" واختر "Nacos".

اختيار الإصدار: اختر أحدث إصدار مستقر (مثل Nacos 2.x). يتم اختيار مواصفات الكتلة وفقًا لحجم الأعمال ، ويمكن اختيار نوع اختبار التطوير (عقدة واحدة) للاختبار الشخصي أو المشروع الصغير ، ويجب أن تكون بيئة الإنتاج احترافية (3 عقدة عالية متاحة).

بعد الإنشاء ، انتقل إلى صفحة تفاصيل المثيل. سترى عنوانين أساسيين للشبكة: عنوان الإنترانت (على غرار mse-xxxx-nacos-ctl.tbls.com:8848) عنوان الشبكة العامة (إذا كان تصحيح أخطاء الشبكة العامة ، فيجب فتحه ، وبيئة الإنتاج تستخدم الإنترانت فقط للسلامة)

سجل عنوان الإنترانت هذا ، وهو المتغير الذي سنقدمه إلى microservices في الخطوة التالية.

الخطوة الثالثة: نشر مكونات الخدمات الصغيرة باستخدام SAE (4 دقائق)

هناك العديد من مكونات الخدمات المصغرة. إذا كنت تستخدم K8s التقليدية (ACK) للنشر ، فأنت بحاجة إلى كتابة عدد كبير من ملفات YAML وفهم مفاهيم مثل Pod و Deployment.

هنا يوصى باستخدام أبسط

SAE (محرك التطبيق Serverless)

، فإنه يوفر لك ألم الحفاظ على مجموعة K8s ، ويمكنك الركض عن طريق تحميل حقيبة Jar أو صورة المرآة مباشرة.

1-المشاريع المعبأة

قم بتنفيذ أمر Maven تحت جذر المشروع المحلي ، وحزم الخدمات المصغرة في حزمة Jar القياسية:

باش

Mvn clean package -DskipTests

احضري هذا-حسناً-

Order-service.jar

.

2. إنشاء التطبيقات في SAE

أدخل وحدة التحكم في Alibun "Serverless Application Engine SAE".

انقر على "قائمة التطبيقات" $ \ rightarrow $ "إنشاء تطبيق".

طريقة نشر التطبيق: اختر "نشر حزمة JAR" (إذا كنت على دراية بـ Docker ، يمكنك أيضًا اختيار نشر المرآة).

بيئة وقت التشغيل: حدد إصدار JDK المقابل (مثل Java 8 أو Java 11/17).

تحميل order-service.jar التي قمت بتعبئتها للتو.

3. حقن المتغيرات البيئية (الخطوة الأساسية)

في صفحة النشر

”الإعدادات المتقدمة“

في ، ابحث

"المتغيرات البيئية"

الخيارات. تذكر الفراغ الذي حددناه في الخطوة الأولى من التعليمات البرمجية

ما هو ؟ اصنعها هنا:

مفتاح (Key)

القيمة (Value)

NACOS_SERVER_ADDR

املأ عنوان MSE Nacos الذي تم نسخه في الخطوة الثانية

NACOS_NAMESPACE

إذا قمت ببناء مساحة اسم جديدة في Nacos ، املأ المعرف ، املأ public إذا لم تقم بذلك

4-بدء تشغيل التطبيقات

انقر على تأكيد إنشاء ونشر. ستقوم SAE تلقائيًا بجدولة موارد الحساب الخاصة بك في الخلفية ، وسحب الحاوية وتشغيل حزمة Jar. انتظر 1 ~ في دقيقتين ، أصبحت الحالة "قيد التشغيل" ، مما يشير إلى أن الخدمة قد تم تشغيلها بنجاح في السحابة.

يمكنك العودة لتسجيل الدخول

وحدة التحكم MSE Nacos

، قم بتحديثه في قائمة "إدارة الخدمة" ، ويمكنك رؤيته

Order-service

تم تسجيله بنجاح!

الخطوة الرابعة: تكوين البوابة السحابية الأصلية للوصول الخارجي (دقيقتان)

تعمل الخدمة المصغرة على الشبكة الداخلية ، ولكن كيف يمكن لمستخدمي الشبكة الخارجية الوصول إليها ؟ نحن بحاجة إلى مدخل موحد ، بوابة الخدمات الصغيرة. يوفر Ali Cloud MSE "البوابة السحابية الأصلية" الخاصة به ، والتي تحل محل بوابة Spring Cloud التقليدية تمامًا.

أدخل قائمة مثيلات MSE وحدة التحكم $ \ rightarrow $ بوابة السحابة الأصلية $ \ rightarrow $ ، انقر فوق إنشاء.

ربط مثيلات MSE Nacos التي قمت بإنشائها للتو.

بعد إنشاء البوابة بنجاح ، انتقل إلى صفحة تفاصيل البوابة وانقر على "مصدر الخدمة" $ \ rightarrow $ "إضافة مصدر خدمة" على اليسار. حدد نوع المصدر "MSE Nacos" ، ثم ضع علامة على مثيل Nacos الخاص بك.

انقر على "تكوين التوجيه" على اليسار $ \ rightarrow $ "إنشاء التوجيه": اسم التوجيه: مثل التوجيه. المسار المطابق: على سبيل المثال الإدخال/order/. خدمة الهدف: حدد مباشرة في القائمة المنسدلة التي قمت بالتسجيل فيها في Nacos.

انقر على حفظ ونشر.

في هذا الوقت ، قم بزيارة مسار IP الإضافي للشبكة العامة الذي توفره البوابة السحابية الأصلية (مثل: // بوابة IP/order/create)

ستدرك البوابة تلقائيًا عقد الخدمة المصغرة في Nacos وتعيد توجيه الطلبات بشكل مثالي.

دليل تجنب الحفر والضبط المتقدم

شاشة بيضاء/غير قادر على التسجيل ؟ تحقق من مجموعة الأمن السيبراني أولا! يجب أن تكون تطبيقات MSE Nacos و SAE تحت نفس VPC (سحابة خاصة افتراضية) ونفس التبديل قبل أن يتمكنوا من الاتصال البيني عبر الشبكة الداخلية. إذا وجدت أن الخدمة المصغرة في SAE أبلغت بشكل محموم عن "مهلة الاتصال Nacos" ، فتحقق على الفور مما إذا كانت خصائص VPC للمنتجين متسقة.

مشكلة الخدمات المصغرة غير المتصلة بالإنترنت بشكل أنيق ، وتخشى الخدمات الصغيرة أكثر من التسبب في قيام المستخدمين الذين يزورون بالإبلاغ عن الأخطاء عند إصدار إصدارات جديدة. يأتي Alibaba Cloud SAE بوظيفة أنيقة غير متصلة بالإنترنت (بدون خسارة). الأصلي

السبب: قبل تدمير الخدمة المصغرة ، سترسل SAE بنشاط إشارة إلغاء إلى MSE Nacos ، بحيث لا تقوم البوابة بعد الآن بتحويل حركة المرور الجديدة ، وإغلاق الحاوية بعد معالجة الطلب القديم. كيفية الاستخدام: في الإعدادات المتقدمة لتطبيقات SAE ، قم بتشغيل مفتاح "الخدمة الدقيقة غير المدمرة" ، ولا يلزم تعديل الرمز على الإطلاق.

أبلغ فائض الذاكرة (OOM) عن أخطاء العديد من المبتدئين يخلطون بين ذاكرة JVM وذاكرة النظام. إذا اشتريت مثالًا بمواصفات 2G بنواة واحدة في SAE ، فلا تكتب-Xmx2g في معلمات JVM ، لأن النظام نفسه يحتاج أيضًا إلى تناول الذاكرة أثناء التشغيل. القاعدة الذهبية: يجب تعيين الحد الأقصى لذاكرة كومة JVM (-Xmx) على 60 ٪ من مواصفات المثيل ~ حوالي 70 ٪. على سبيل المثال ، في حالة مواصفات 2G ، يوصى بتكوين معلمة JVM كـ-Xmx1300 m.

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

cloud
← 返回新闻中心