تصميم حاوية الويب
يتضمن تطوير حاوية ويب العديد من التقنيات على مستويات مختلفة ، مثل معرفة طبقة الاتصال ، ومعرفة مستوى لغة البرنامج ، وما إلى ذلك ، وحاوية الويب المتاحة هي نظام كبير نسبيًا ، ويستغرق شرحها بشكل واضح. تهدف هذه المقالة إلى تقديم كيفية تصميم حاوية ويب ، فقط مناقشة أفكار التنفيذ ، ولا تتضمن الكثير من التطبيقات المحددة. اقسمها إلى عدة وحدات ومكونات. كل وحدة مكون مسؤولة عن وظائف مختلفة. يسرد الشكل التالي بعض المكونات الأساسية ويقدم كل مكون.
الاتصال بالمستقبل
تتمثل المسؤولية الرئيسية في الاستماع إلى ما إذا كان هناك اتصال مقبس العميل وتلقي المقبس ، ثم تسليم المقبس إلى Executor المهمة (تجمع مؤشرات الترابط) للتنفيذ. اقرأ المستنقعات المستمرة من أسفل النظام ، وقم بأقل قدر ممكن من المعالجة ، ثم رميها في تجمع الخيوط. لماذا التأكيد على الحاجة إلى التعامل مع أقل قدر ممكن؟ يرتبط هذا بمشكلات أداء النظام ، وستؤثر المعالجة المفرطة على الإنتاجية بشكل خطير. نظرًا لوجود جهاز استقبال واحد فقط (موضوع واحد مسؤول عن استقبال المقبس) ، فمن المحتمل أن يكون له تأثير على طول كل عملية استقبال. لذلك ، يقوم المتلقي بعمل قليل جدًا وبسيط للغاية ، حيث يحافظ فقط على بعض متغيرات الحالة ، وتشغيل تراكم بوابة التحكم في التدفق ، وتشغيل الاستقبال للخدم ، ووضع بعض خصائص المقبس المستقبل ، ووضع المقبس المستلم في تجمع الخيوط ، وبعض الاستثناءات. يتم تسليم المنطق الآخر الذي يستغرق وقتًا طويلاً للمعالجة إلى تجمع مؤشرات الترابط ، مثل قراءة البيانات الأساسية للمقبس ، وتحليل حزم بروتوكول HTTP والاستجابة لبعض عمليات العميل ، إلخ.
وحدة تحكم رقم الاتصال
بالنسبة للجهاز ، فإن إجمالي حركة المرور لطلبات الوصول له فترة ذروة ويحتوي الخادم على حد مادي. من أجل التأكد من عدم غسل خادم الويب ، نحتاج إلى اتخاذ بعض التدابير لحماية ومنعه. يجب شرح حركة المرور هنا أكثر قليلاً حول عدد اتصالات المقبس ، والتي تتحكم في حركة المرور عن طريق التحكم في عدد اتصالات المقبس. تتمثل إحدى الطرق الفعالة في اعتماد التحكم في التدفق ، وهو ما يشبه إضافة بوابة إلى مدخل التدفق. يحدد حجم البوابة حجم التدفق. بمجرد الوصول إلى الحد الأقصى للتدفق ، سيتم إغلاق البوابة وتتوقف عن الاستلام حتى تكون هناك قناة خاملة. يمكن تنفيذ العدادات باستخدام إطار AQS من JDK.
مصنع المقبس
قد تتطلب مناسبات الاستخدام المختلفة مستويات أمان مختلفة. على سبيل المثال ، عند المعاملات المتعلقة بالدفع ، يجب تشفير المعلومات قبل الإرسال ، والتي تتضمن أيضًا عملية التفاوض الرئيسي ، بينما في المناسبات العادية الأخرى ، ليست هناك حاجة إلى تشفير الحزمة. التفكير في طبقة التطبيق يمثل مشكلة في استخدام HTTP و HTTPS.
ببساطة ، يوفر بروتوكول TLS/SSL خدمات المصادقة لكل اتصال ① لمصادقة شرعية هوية الكيان لهذه الجلسة. ② توفير خدمات التشفير ، ويمكن لآلية التشفير القوية أن تضمن عدم فك تشفير الرسائل أثناء الاتصال. ③ توفير خدمات مقاومة للعبث ، استخدم خوارزمية التجزئة لتوقيع الرسائل ، والتأكد من عدم العبث بمحتوى الاتصال من خلال التحقق من التواقيع.
يتوافق بروتوكول HTTP مع المقبس ، بينما يتوافق HTTPS مع SSLSocket. يتم تسليم كيفية إنشاء مآخذ و sslsockets إلى مصنع المقبس.
المهمة المحددة - المهمة
حدد المهام المراد تنفيذها وإخبار تجمع الخيوط بأي نوع من المهام التي سيتم تنفيذها. تنقسم المهمة بشكل أساسي إلى ثلاث نقاط: معالجة مآخذ التوصيل والاستجابة للعملاء ، وتقليل عداد عدد الاتصال ، وإغلاق المقبس. من بينها ، معالجة المقبس هي الأكثر أهمية والأكثر تعقيدًا. ويتضمن قراءة دفق بايت المقبس الأساسي ، وتوحل رسالة طلب بروتوكول HTTP (تحليل خط الطلب ، ورأس الطلب ، وطلب الهيئة وغيرها من المعلومات) ، والحصول على المسار بناءً على تحليل خط الطلب للعثور على موارد مشروع الويب على المضيف المقابل ، وتجميع رسالة استجابة بروتوكول HTTP وفقًا لنتائج المعالجة وإخراجها من العميل.
مهام المنفذ
يُطلق على تجمع مؤشرات الترابط مع الحد الأقصى والحد الأدنى لعدد مؤشرات الترابط "منفذ المهام" لأنه يمكن اعتبار تجمع مؤشرات الترابط على أنه يبدأ عدة مؤشرات ترابط لاكتشاف قائمة انتظار المهمة بشكل مستمر ، وبمجرد أن يتم العثور على المهمة ، سيتم تنفيذها. الحد الأقصى والحد الأدنى لعدد مؤشرات الترابط ، الحد الزمني لاسترداد مؤشرات الترابط الزائدة ، إجراء الرفض الذي تم إجراؤه بواسطة تجمع مؤشرات الترابط عندما يتجاوز الحد الأقصى لعدد مؤشرات الترابط ، إلخ.
قراءة الرسالة
تستخدم لقراءة الحزم من العميل إلى نظام التشغيل الأساسي وتوفير آلية التخزين المؤقت. انسخ الرسالة إلى Desbuf.
إخراج الرسالة
تستخدم لكتابة الحزم التي تتم معالجتها بواسطة حاويات الويب إلى نظام التشغيل وتوفير آلية التخزين المؤقت. اكتب Message OutputBuf إلى نظام التشغيل من خلال المخزن المؤقت.
مرشح الإدخال
في عملية القراءة هذه ، هناك حاجة إلى بعض المعالجة الإضافية ، وقد تتم هذه المعالجة الإضافية بشكل مختلف وفقًا لظروف مختلفة. بالنظر إلى فصل البرنامج والتمديد ، يتم تقديم المرشحات. فقط بعد عمليات التصفية ، يمكننا الوصول إلى Desbuf من خلال طبقات من المرشحات. هذه العملية مثل إضافة مستويات المعالجة. سيتم تنفيذ العمليات المقابلة بعد المرور عبر المستويات ، وأخيراً سيتم إكمال بيانات المصدر إلى بيانات الوجهة.
مرشح الإخراج
يشبه وظيفة مرشح الإدخال ، ويتم استخدامها عند إخراج الرسائل.
محلل الرسالة
يوفر القدرة على تحليل أجزاء مختلفة من بروتوكول HTTP.
طلب مولد
وفقًا للفكرة الموجهة للكائن ، يتم استخلاص السمات وحقول البروتوكول المتعلقة بالطلب في كل عملية طلب في كائن طلب. ويشمل ثلاثة أجزاء: خط الطلب ، رأس طلب ، وطلب الجسم. ما هي القيم المطلوبة أثناء المعالجة يمكن الحصول عليها مباشرة من كائن الطلب. يوفر الراحة لتنفيذ معايير servlet.
مولد الاستجابة
المقابلة للطلب ، مطلوب مولد كائن الاستجابة. ويشمل ثلاثة أجزاء: صف الاستجابة ، رأس الاستجابة ، وجسم الاستجابة. يمكن تعيين القيم ذات الصلة في نتيجة المعالجة مباشرة على كائن الاستجابة. يوفر الراحة لتنفيذ معايير servlet.
عنوان Mapper
خريطة العنوان هو جهاز توجيه يطلب وموارد. يتم تعيين الوصول المطلوب وفقًا للمسار للعثور على مورد الاستجابة للعميل طلب.
دورة الحياة
من أجل زيادة المعدل ، تحتوي الحاوية بأكملها على العديد من المكونات ، والتي قد تتطلب أحداثًا مختلفة في لحظات مختلفة وتتطلب دورة حياة لإدارة جميع المكونات بطريقة موحدة. على سبيل المثال ، يتم فصل جميع المكونات بدء التشغيل والإيقاف وإغلاق جميع المكونات عن الإدارة الموحدة لدورات الحياة ، والتي يمكن أن تسهل إدارة دورة حياة هذه المكونات. آمل أن أفعل شيئًا ما قبل وبعد حدوث شيء ما في حالة معينة؟ أضف مستمع دورة حياة لتحقيق برشاقة.
مدير JMX
مراقبة وإدارة حالة تشغيل النظام ، أداء الخادم ، مجموعة من المعلمات المتعلقة بالخادم ، تحميل JVM ، رقم اتصال الويب ، تجمع مؤشرات الترابط ، تجمع اتصالات قاعدة البيانات ، إدارة ذاكرة التخزين المؤقت ، إعادة تحميل ملفات التكوين ، وما إلى ذلك يمكن أن توفر بعض الإدارة البصرية عن بُعد ، مع أداء في الوقت الفعلي. كما يوفر حلاً لإدارة الأنظمة الموزعة.
محمل الويب
يتم استخدام WebLoader لتحميل مشاريع تطبيقات الويب. قد تحتوي حاوية الويب على العديد من تطبيقات الويب. من أجل تحقيق العزلة بين LIB و SERVELT ، يجب استخدام محمل فئة مختلف ، ClassLoader ، لكل تطبيق ويب ، ولن يتم استخدام هذه اللوائح من الفئة من العلاقات بين الوالدين والطفل ، وذلك لتحقيق تأثير العزلة الفئة ، أي LIB لتطبيق الويب لن يتم استخدامه من قبل تطبيقات الويب الأخرى.
مدير الجلسة
يدير مدير الجلسة بشكل أساسي الجلسات ، بما في ذلك: ① إنشاء SessionIDs. بشكل عام ، لا تحتوي ملفات تعريف الارتباط أو عناوين URL على قيم jSessionId ، ويجب إعادة تنشيط SessionId على أنها SessionId. ② يتم حفظ العديد من جلسات العميل في الخادم. بالنسبة لجلسات المهلة ، يجب عليك التنظيف بانتظام للتأكد من عدم إهدار ذاكرة الخادم. ③ بالنسبة لبعض الجلسات المهمة ، يمكن استمرارها على القرص ويمكن إعادة تحميلها في الذاكرة لاستخدامها عند الحاجة.
تشغيل السجل
سجل بعض التحذيرات والاستثناءات والأخطاء في وقت التشغيل.
سجل الوصول
يسجل سجل الوصول عمومًا المعلومات المتعلقة بالوصول إلى العميل ، بما في ذلك IP العميل ، ووقت الطلب ، وبروتوكول الطلب ، وطريقة الطلب ، ورقم بايت الطلب ، ورمز الاستجابة ، ومعرف الجلسة ، ووقت المعالجة ، وما إلى ذلك ، يمكن لسجل الوصول أن يحسب عدد المستخدمين الزائرين ، وقواعد توزيع وقت الوصول ، والهوايات الشخصية ، وما إلى ذلك ، ويمكن لهذه البيانات أن تساعد الشركات في اتخاذ القرارات في الاستراتيجيات العملية الخاصة بهم.
مدير الأمن
يعمل مشروع الويب على منصة حاوية ويب ، يشبه تضمين تطبيق على نظام أساسي لتشغيله. لجعل البرنامج المضمن يتم تشغيله بشكل طبيعي ، يجب أن يكون النظام الأساسي قادرًا على التشغيل بأمان وعادة. ولضمان عدم تأثر النظام الأساسي بالتطبيقات المدمجة إلى أقصى حد ، يحقق الاثنان تأثير العزلة إلى حد ما. في بدء التشغيل ، يتم تحديد ملف السياسة بواسطة -djava.security.manager -djava.security.policy == web.policy ، والذي يحدد الأذونات المختلفة.
مراقبة العملية والإدارة عن بُعد
يوفر منصة يمكنها مراقبة حالة تشغيل حاويات الويب في الوقت الفعلي ويمكن إدارتها عن بُعد.
تَجَمَّع
هناك عمومًا نوعين من المجموعات: ① مجموعات موازنة التحميل ، والتي تستخدم عمومًا خوارزمية توزيع معينة لتوزيع حركة الوصول بالتساوي على كل جهاز في المجموعة للمعالجة. ② مجموعات توافر عالية ، يربط الاتصالات مجموعة العديد من الآلات. يركز هذا النوع من المجموعات بشكل أكبر على ضمان توافر الكتلة بالكامل من خلال التبديل التلقائي أو نقل حركة المرور بعد فشل الجهاز في المجموعة.
بشكل عام ، تكون طلبات الويب عديمة الجنسية ويمكن تجميعها بشكل مباشر ، لكن الجلسة تتضمن تحسن الحالة وتتطلب استخدام تقنية الاتصالات الكتلة لنسخ الجلسات. وتشمل التقنيات ذات الصلة البث المتعدد و UNICAST.
محرك servlet
يستخدم محرك Servlet انعكاسًا لإنشاء كائنات في Servlet و JSP في تطبيق الويب ووضعها في تجمع كائن Servlet ، ويدعو الطرق المقابلة وفقًا للموقف الفعلي. يضع تطبيق الويب معالجة منطق الأعمال في طريقة Dopost أو الكلب. عندما تقوم حاوية الويب بمعالجة الطلب ، فسيتم معالجته وفقًا لمنطق المعالجة المحدد هنا ، وسيتم الرد على عميل الاستجابة.
برنامج التحويل البرمجي JSP
وفقًا للمواصفات ، يتم تجميع JSP في نهاية المطاف في تنفيذ Servlet ، لذلك يجب تجميع ملف JSP وفقًا للمواصفات. يقوم برنامج التحويل البرمجي JSP بالفعل بترجمة بناء جملة JSP ويعالجه وفقًا لبناء JSP.
تحتوي حاوية الويب بشكل أساسي على وظائف المكونات المقدمة أعلاه. يمكنك إنشاء حاوية ويب تتيح الويب الخاص بك تشغيله وفقًا لتنفيذ كل وحدة مكون.
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!