ما هو مثال على خادم شبكة مصمم بشكل جيد؟
-
13-09-2019 - |
سؤال
أنا مهتم بالنظر إلى بنية لتطبيقات خدمة التضلل القابلة للتوسيع. أنا لست مهتما جدا بالبروتوكول، أو اللغة المستخدمة، أكثر في الأناقة والتمويل من التصميم. بالطبع يتبادر أباتشي إلى الذهن، لكنني كنت أتساءل عما إذا كان لدى أي شخص أي أمثلة أخرى تجدها متعة العمل معها.
تحرير: فقط للتوضيح، أنا أسأل عن تطبيق خادم يقوم بتنفيذ بروتوكول شبكة. أطر تطوير الويب ليست خوادم الشبكة بهذا المعنى. قد تتضمن البروتوكولات، ولكن لا تقتصر على: FTP، HTTP، XMPP، SNMP، IMAP، إلخ. تقوم خوادم الشبكات الجيدة بتنفيذ نوع من التوازي، والتركيز على التوسع، ولكن لديها إمالة جيدة أيضا.
المحلول
nginx. (انظر أيضا nginx wiki.) هو خادم HTTP وكيل البريد الذي حصل على سمعة مقابل قابلية التوسع وكفاءة الموارد. يستخدم بنية قائمة على الأحداث (دعم encoll، Kqueue، إلخ) للحفاظ على انخفاض استخدام الذاكرة حتى تحت الأحمال الكبيرة.
نصائح أخرى
احسب كنت رمي اباتشي هنا لمنع الإجابة مع الجميع في نفس الوقت.
جانغوإطار الويب هو خادم جميل. بالنسبة لهذه المسألة، جميع خوادم تطبيقات الويب هي قابلة للتوسيع للغاية.
أود أن أقول ASP.NET هو تطبيق خادم مصمم بشكل جيد. نموذج البرمجة قابل للتوسيع (يتيح لك ربط كل حدث في دورة حياة الطلب مع وحدات مؤلفة من قبل المستخدم).
أيضا scalabale للغاية والأداء.
وظيفة التخزين المؤقت وحدها تستحق كل هذا العناء. يمكنني أن أعطيك رابط عام ل ASP.NET لكنني متأكد من أنك على دراية به بشكل معقول.
لكتابة خوادم الشبكة التي أحب العمل بها بوي.
jabberd. هو خادم XMPP مكتوب في Erlang. تتناسب الرسالة الأصلية لصناعة لغة البرمجة Erlang بشكل جيد مع خادم المراسلة الفورية، والتي تسمح Ejabberd أن تكون وحدات جدا، وكذلك عرض الكثير من التوازي.
ال النجمة PBX. هو خادم هاتف مفتوح المصدر ينفذ عددا من بروتوكولات VoIP بما في ذلك SIP. إنها وحدات إلى حد ما، وقابلة للتكوين بشكل لا يصدق، حتى استخدام لغة البرمجة الخاصة بها من نوع الفرز، AEL، لوصف تفاعلات IVR Dialplan.
جيتي عملت بشكل جيد بالنسبة لي. إنه سريع ويعمل جيدا تحت الحمل. بالطبع، سوف يعتمد الأداء أي نوع من التطبيقات التي تنتشر عليها على رأس رصيف.
أود أن أوصي بقراءة هذه الكتب حول ACE:
- برمجة الشبكة C ++: إتقان التعقيد باستخدام ACE والأنماط
- برمجة الشبكة C ++: إعادة الاستخدام المنهجي مع ACE والأطر
أنها تحتوي على الكثير من المعلومات المفيدة للغاية حول تصميم التطبيقات الشبكية.
منذ أن لم يذكر أي شخص آخر: IIS.
إنه تطبيق قابل للتوسيع للغاية ل Windows (وهو قابل للتوسيع للغاية نفسه).
تك على ASP وغيرها من مكونات .NET ولا يمكنك حقا الحصول على أكثر تنوعا من ذلك.