1

확장 가능한 네트워크 제공 응용 프로그램을위한 아키텍처를 살펴보고 싶습니다. 나는 프로토콜이나 사용되는 언어에 너무 관심이 없습니다. 디자인의 우아함과 확장성에 더 많은 관심이 있습니다. 물론 아파치가 떠오른다.하지만 다른 사람들이 함께 작업 할 수있는 즐거움을 찾았는지 궁금하다.잘 설계된 네트워크 서버의 예는 무엇입니까?

EDIT : 명확히하기 위해 네트워크 프로토콜을 구현하는 서버 응용 프로그램에 대해 묻습니다. 웹 개발 프레임 워크는 이러한 의미에서 네트워크 서버가 아닙니다. 프로토콜에는 FTP, HTTP, XMPP, SNMP, IMAP 등이 포함될 수 있습니다. 좋은 네트워크 서버는 일종의 병렬 처리를 구현하고 확장성에 초점을 맞추지 만 좋은 확장 성을 갖추고 있습니다.

답변

3

nginx (참조 : nginx wiki)은 확장 성 및 리소스 효율성에 대한 명성을 얻은 HTTP 서버 및 메일 프록시입니다. 그것은 이벤트 기반 아키텍처 (epoll, kqueue 등 지원)를 사용하여 상당한 부하가 걸려도 메모리 사용량을 낮게 유지합니다.

+0

이것은 굉장합니다, 이런 종류의 일은 제가 찾고있는 것입니다. – bmdhacks

2

피규어 나는 여기에 Apache을 던져서 동시에 모든 사람이 응답하는 것을 막습니다.

0

Django 님의 웹 프레임 워크는 멋진 서버입니다. 따라서 모든 웹 응용 프로그램 서버는 매우 확장 성이 뛰어납니다.

+0

네트워크 프로토콜을 구현하지 않는 것은 실제로 네트워크 서버가 아닙니다. – bmdhacks

+0

웹 서버이기 때문에 HTTP를 구현하는 것으로 보입니다. HTTP를 구현하지 않는다는 말 때문에 질문이 혼란 스럽습니다. –

0

ASP.NET은 잘 설계된 서버 응용 프로그램입니다. 프로그래밍 모델은 확장 가능합니다 (사용자 작성 모듈을 사용하여 요청주기의 모든 이벤트에 연결할 수 있습니다).

또한 매우 확장 성과 성능이 뛰어납니다.

캐싱 기능만으로도 충분합니다. ASP.NET에 대한 일반적인 링크를 제공 할 수는 있지만 실제로 익숙하다고 확신합니다. 내가 POE 작업을 같이 쓰기 네트워크 서버의

http://www.asp.net/

+0

비동기식 웹 페이지는 또 다른 위대한 feauture입니다. – Sesh

0

.

+0

POE는 네트워크 서버를 구축하는 데 매우 흥미로운 도구이지만 자체적으로 네트워크 서버는 아닙니다. – bmdhacks

0

Ejabberd은 Erlang으로 작성된 XMPP 서버입니다. Erlang 프로그래밍 언어의 기본 메시지 전달은 인스턴트 메시징 서버와 잘 어울리 며, Ejabberd는 매우 모듈화 될뿐만 아니라 많은 병렬 처리를 보여줍니다.

0

Asterisk PBX은 SIP를 비롯한 다양한 VoIP 프로토콜을 구현하는 오픈 소스 전화 통신 서버입니다. 상당히 모듈화되어 있으며 구성이 가능하며 IVR 다이얼 플랜 상호 작용을 설명하는 고유 한 AEL 프로그래밍 언어 인 AEL을 사용해도 구성 할 수 있습니다.

0

Jetty은 저에게 효과적입니다. 그것은 빠르고 부하가 잘 걸리는 상태로 작동합니다. 물론, 성능은 Jetty 위에 어떤 종류의 응용 프로그램을 배포 하느냐에 달려 있습니다.

0

OpenSSH을 살펴 보겠습니다. 실제적으로 꿰 뚫을 수없는 것으로 잘 알려져 있습니다.이것은 주로 OpenBSD 그룹의 집중적 인 검토 프로세스 때문이지만 아키텍처와 관련이 있다고 생각됩니다.

확장 성을 위해 OpenSSL (OpenSSH에 사용되는 기본 프로토콜 툴킷)에 조금 더 깊게 보일 것입니다.

0

IIS를 언급 한 사람이 아무도 없으므로 : IIS.

매우 확장 성이 뛰어난 Windows 용 응용 프로그램입니다.

ASP 및 기타 .NET 구성 요소에 대한 압정으로 인해 그 이상의 다양한 기능을 실제로 얻을 수는 없습니다.