🖥️
Web & REST

Embedded Servers

Tomcat, Jetty, Undertow
💡 Embedded server ek FOOD TRUCK hai — TRADITIONAL restaurant (external Tomcat deployment) mein, KITCHEN (server) ALAG SE SETUP karna padta hai, RESTAURANT (application) ko WAHA DEPLOY karna padta hai. Food truck (embedded server) mein, KITCHEN AUR RESTAURANT EK HI VEHICLE mein BUILT-IN hain — JAHA CHAHO, WAHA CHALA LO.

Spring Boot applications mein, WEB SERVER (Tomcat DEFAULT hai) EMBEDDED hota hai — APPLICATION KE ANDAR hi, ek DEPENDENCY ki tarah. Ye TRADITIONAL Java web development se BADA SHIFT hai, JAHA WAR FILES ko SEPARATELY-installed Tomcat/JBoss server par DEPLOY karna padta tha.

Embedded server ka SABSE BADA FAYDA — STANDALONE DEPLOYMENT. java -jar app.jar se DIRECTLY application RUN ho jaati hai, KOI EXTERNAL server SETUP/CONFIGURE karne ki zaroorat NAHI. Ye DOCKER CONTAINERS, CLOUD PLATFORMS (AWS, Kubernetes) ke liye PERFECT FIT hai — HAR CONTAINER, KHUD KA embedded server LEKAR CHALTA hai.

// spring-boot-starter-web AUTOMATICALLY Tomcat EMBED karta hai:
@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
        // Embedded Tomcat AUTOMATICALLY start, PORT 8080 par
    }
}

// server configuration (application.properties):
server.port=8081
server.tomcat.max-connections=10000
server.tomcat.threads.max=200
🖥️
Embedded server ek FOOD TRUCK hai — TRADITIONAL restaurant (external Tomcat deployment) mein, KITCHEN (server) ALAG SE SETUP karna padta hai, RESTAURANT (application) ko WAHA DEPLOY karna padta hai. Food truck (embedded server) mein, KITCHEN AUR RESTAURANT EK HI VEHICLE mein BUILT-IN hain — JAHA CHAHO, WAHA CHALA LO.
1 / 6
⚡ Quick Recap
  • Embedded server = application KE ANDAR HI web server, ALAG deployment NAHI
  • java -jar app.jar = SEEDHA run, koi EXTERNAL server setup NAHI chahiye
  • Docker/Kubernetes ke liye PERFECT fit — HAR container APNA server LEKAR CHALTA hai
Is page mein (2 subtopics)

Default embedded server TOMCAT hai, LEKIN spring-boot-starter-web se Tomcat EXCLUDE karके, Jetty ya Undertow SWITCH kiya ja sakta hai — jaise Undertow BENCHMARK mein aksar THODA FASTER aur LESS MEMORY use karta hai, kuch USE-CASES ke liye.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

Embedded server ka THREAD POOL (kitni CONCURRENT requests HANDLE ho sakti hain) properties se TUNE kiya ja sakta hai — server.tomcat.threads.max, server.tomcat.threads.min-spare — HIGH-TRAFFIC applications ke liye IMPORTANT TUNING PARAMETER.

server.tomcat.threads.max=200
server.tomcat.threads.min-spare=10
server.tomcat.connection-timeout=5s