웹 서버 개발의 다양한 접근 방식은 무엇입니까? 그래서 (1) 멀티 스레드 (2) 이벤트 루프가있는 것 같습니까? 각 접근법의 장단점은 무엇입니까? 언제 각각 사용 하시겠습니까? 각각의 접근에 대해 특정 impl을 열거 할 수 있습니까?웹 서버 개발의 다른 접근 방식은 무엇입니까?
답변
비 차단 I/O를 추가해야합니다. Netty을 살펴보십시오.
다른 방법은 다음과 같습니다
단일 스레드 : 모든 연결은 가 "수신"및 연결을 기다리고 및 프로세스가 구현하는 간단 requests.It하지만임을 단일 스레드에 의해 처리됩니다 이 는 한 번
멀티 스레드에서 요청을 처리 할 수있는 가장 쓸모 서버 : 서버가 요청을 수신하고 각 수신 요청이 it.So 각 클라이언트를 처리하기 위해 새 스레드에 할당 연결은 전용 스레드에 의해 처리됩니다. ( 1과 달리)이 방법은 클라이언트 요청의 동시 처리를 지원하지만, 각각의 새로운 요청이 서버 에 새로운 스레드를 생성하기 때문에하지 규모 잘 수행하고이 서버가 제한
에게 명중 할 resources.Eventually이 많이 걸립니다
멀티 스레드 풀 : (2)와 같은 아이디어이지만, 각 들어오는 요청을 처리하기 위해 새로운 스레드를 생성하는 대신 스레드 풀 의 스레드가 사용됩니다. 스레드가 생성되어 나중에 재사용을위한 풀에 배치됩니다.이 방법은 여러 클라이언트 요청을 지원하는 데 매우 효과적이며 표준 접근 방식입니다. Tomcat은 이와 같이 작동합니다.
이벤트 큐 : 들어오는 각 요청은 대기열에 배치되고 은 대기열의 요청을 처리하는 백그라운드 스레드에 의해 처리됩니다. 그것은 non-blocking이고 비동기 처리의이 유형은 또한 도 잘 맞습니다. 솔직히 말해서 그것이 성능에서 (3)보다 나은지 확실하지 않습니다. 그 바람둥이가 NIO 아키텍처를 사용하여 구성 될 수 있다고 생각합니다. 서버가 많은 연결을 처리 각 스레드와 CPU 코어를 포화시키는 G-WAN 믹스 멀티 스레드 - 풀 및 이벤트 큐 같은
일부 서버.
동료 : 저는이 프로젝트의 개발에 관여하고 있습니다.
- 1. OOP 접근 방식은 무엇입니까? (또는 당신의 접근?)
- 2. php5 클래스 접근 방식은 무엇입니까?
- 3. 최고의 아약스 접근 방식은 무엇입니까?
- 4. VCS에서 Git으로 마이그레이션 - 내 접근 방식은 어떻습니까?
- 5. AjaxControlToolkit - Extender - "현재"접근 방식은 무엇입니까?
- 6. Liferay : Liferay에 로그인하기위한 기본 접근 방식은 무엇입니까?
- 7. iPhone 앱 현지화 - 귀하의 접근 방식은 무엇입니까?
- 8. JPA와 Hibernate Search의 접근 방식은 무엇입니까?
- 9. 서버 개발의 성능 카운터
- 10. 웹 개발의 푸시 상태
- 11. 웹 개발의 응용 프로그램 유형이 다른 경우
- 12. 고정 잘못된 서버 방식은
- 13. MVC와 View의 차이점 웹 개발의 첫 번째 접근 방식
- 14. 웹 개발의 Objective-C
- 15. 로컬 Android DB를 서버에 승인하고 동기화하는 표준 접근 방식은 무엇입니까?
- 16. 웹 개발의 XML 이해
- 17. JSR-303 - 내 접근 방식은 스레드로부터 안전한가요?
- 18. 디바이스/서버 개발의 버전 관리
- 19. 웹 개발의 비동기 호출
- 20. P2P 및 웹 서버 접근 방법을 결합하는 방법은 무엇입니까?
- 21. Winforms old-school 코딩에 대한 나의 접근 방식은 무엇입니까?
- 22. 최고의 멀티 유저 데이터베이스 C# app 접근 방식은 무엇입니까?
- 23. 자동 변경 벽지 : 가장 좋은 접근 방식은 무엇입니까
- 24. .Net 클라이언트에서 원격 파일을 복사하거나 이동하는 강력한 접근 방식은 무엇입니까?
- 25. iPhone에서 로컬 데이터베이스의 Encyption에 대한 최선의 접근 방식은 무엇입니까?
- 26. 다중 URL을 처리하는 컨트롤러 서블릿에 권장되는 접근 방식은 무엇입니까?
- 27. XML에서 스트림 필터링에 가장 적합한 Java 접근 방식은 무엇입니까?
- 28. 출력의 종류에 대한 좋은 CSS 접근 방식은 무엇입니까?
- 29. iPhone 앱 사용자 설정 - 권장 접근 방식은 무엇입니까?
- 30. MVC에서 사용자 알림/확인을 제공하기 위해 권장되는 접근 방식은 무엇입니까?
(일반적으로) event-loop와 nio가 함께 표시됩니다. – DuduAlul