숙취
Spring Boot는 기본적으로 내장 서버를 사용합니다. 수컷 고양이사용
임베디드 서버를 사용하는 이유는 무엇입니까?
- 응용 프로그램 개발 및 배포를 용이하게 합니다.
- 손쉬운 개발 및 테스트
- 통합 서버를 사용하면 별도의 WAS를 설치하거나 구성할 필요가 없습니다.
- 따라서 응용 프로그램을 개발하고 테스트하는 것이 훨씬 쉽습니다.
- 애플리케이션 개발 중에 코드를 변경하면 서버를 다시 시작하여 변경 사항을 반영할 수 있습니다.
- 단일 패키지 배포
- 내장형 서버 사용 시 애플리케이션과 서버가 하나의 패키지로 번들되어 애플리케이션 배포가 용이합니다.
- 서버를 설치하거나 구성하는 데 필요한 복잡성을 줄이고 배포 프로세스를 단순화합니다.
- 높은 휴대성
- 임베디드 서버를 사용하면 응용 프로그램을 다른 환경으로 쉽게 이식할 수 있습니다.
- 실행 환경에 따라 통합 서버를 변경하거나 설정을 변경하여 응용 프로그램을 배포할 수 있습니다.
- 성능과 안정성
- 애플리케이션 실행에 필요한 서버 프로세스는 하나의 프로세스로 관리됩니다.
- 이렇게 하면 애플리케이션의 성능과 안정성이 향상됩니다.
- 전용 서버에서 실행되는 애플리케이션과 달리 임베디드 서버는 애플리케이션과 서버가 동일한 JVM에서 실행되기 때문에 네트워크 오버헤드를 줄이고 성능을 향상시킵니다.
내장 서버를 통해 애플리케이션 개발 및 배포가 더 쉬워집니다.
더 높은 휴대성과 성능/안정성을 제공합니다.
아파치란?
Apache는 Apache Software Foundation에서 관리하는 HTTP 웹 서버입니다.
- HTTP 서버로 다양한 추가 기능 제공
- 구축하기 쉬운
- 포트 80 사용
⇒ 클라이언트가 요청한 HTTP 요청을 처리합니다. 웹 서버
- 정적 유형데이터(HTML, CSS, 이미지 등)만 처리합니다.
숙취
Tomcat은 Apache Software Foundation의 웹 애플리케이션 서버입니다(였다)
- 가장 많이 사용되는 WAS
- 자바 서블릿 실행
- JSP 코드가 포함된 웹 페이지를 만듭니다.
- 포트 8080 사용
아파치와 톰캣
Tomcat은 Apache 기능(웹 서버 기능)을 지원합니다.
그러나 Tomcat의 웹 서버 기능은 Apache의 웹 서버보다 느립니다.
- WAS가 웹상의 모든 정적/동적 데이터를 처리할 때 사용자 요청에 대한 응답이 느려집니다.
또한 Apache의 모든 기능을 제공하지는 않습니다.
- 특수한 상황에서는 Apache Tomcat만으로는 구현하기 어렵습니다.
일반적으로 Apache는 클라이언트의 요청을 받아 Tomcat과 같은 백엔드 서버로 전달하는 프록시 서버로 사용됩니다.
⇒ Apache는 정적 파일을 처리합니다.
⇒ 동적 콘텐츠를 생성하기 위해 Tomcat과 같은 백엔드 서버로 요청을 보내 처리합니다.
⇒ Apache와 Tomcat이 각자의 역할을 수행하면서 웹 서버 성능을 향상시킬 수 있습니다.
Tomcat이 Spring Boot의 기본 임베디드 서버인 이유는 무엇입니까?
기본 설정이 편리합니다.
- 개발자는 별도의 서버를 설치하거나 구성할 필요가 없습니다.
안정적이고 다재다능합니다.
- Tomcat은 이미 많은 사용자가 사용하고 있기 때문에 안정성을 확인했습니다.
- 또한 Tomcat은 지속적으로 업데이트되므로 보안 문제 및 버그를 빠르게 수정할 수 있습니다.
호환성
- Tomcat은 Java Servlet API 및 JSP API와 뛰어난 호환성을 가지고 있습니다.
간편한 설정
- 비교적 쉬운 설정
괜찮은 성능
- Tomcat은 많은 수의 동시 요청을 처리할 수 있기 때문에 대규모 웹 애플리케이션에 적합합니다.
- Spring Boot는 Tomcat의 NIO 기능을 활용하여 우수한 성능을 위해 비동기 I/O를 처리합니다.
스프링 부츠 기본 설정은 편리하고 신뢰할 수 있는 범용 서버입니다. 수컷 고양이임베디드 서버로.
다양한 내장 서버
제티
Jetty는 Eclipse Foundation에서 개발한 Java 웹 애플리케이션 서버입니다.
특성
- Jetty는 시작 시간이 빠르고 메모리 사용량이 적습니다.
- 서블릿 컨테이너와 웹 서버를 함께 제공하여 비동기 요청 처리를 지원하므로 대규모 트래픽 처리에 적합합니다.
소위
Undertow는 Red Hat에서 개발한 경량 Java 웹 애플리케이션 서버입니다.
특성
- 처리량이 높고 대기 시간이 짧습니다.
- 비동기 요청 처리 지원
- WebSocket 및 HTTP/2 프로토콜을 지원하며 뛰어난 성능과 확장성을 제공합니다.
네티
Netty는 JBoss에서 개발한 네트워크 프레임워크입니다.
특성
- 다양한 프로토콜을 지원합니다.
- TCP 및 UDP를 기반으로 비동기 네트워크 애플리케이션을 개발합니다.
- TCP, UDP, HTTP, 웹 소켓
- 이벤트 기반
- Netty는 이벤트를 기반으로 구성되어 네트워크 I/O를 처리할 때 이벤트를 처리하는 핸들러를 구현할 수 있습니다.
- NIO API를 사용하여 네트워크 I/O를 처리합니다.
- 비동기 I/O를 사용하여 네트워크 I/O 처리에 필요한 시간 최소화
- 대규모 트래픽 처리 및 고성능 네트워크 애플리케이션 개발에 적합합니다.
- 고성능 제공
많은 사람들이 대용량 트래픽을 보다 효율적으로 처리할 수 있는 서버를 개발하기 위해 노력하고 있습니다.
Netty + Spring Webflux에서 Tomcat + Spring MVC 환경으로의 전환을 고려하십시오.