Apa itu Embedded Tomcat?

Embedded Tomcat adalah sebuah server Tomcat yang disatukan langsung dengan aplikasi web Java ke dalam satu paket arsip, seperti JAR, WAR, atau ZIP. Jadi, bukan cuma aplikasinya saja, tapi seluruh distribusi server Tomcat juga ikut dibungkus dalam satu file.

Embedded Tomcat ini cocok banget buat pendekatan pengembangan aplikasi berbasis microservices. Selain itu, format seperti ini juga bikin distribusi aplikasi Java via container Docker jadi lebih praktis, apalagi kalau dikelola pakai Kubernetes atau OpenShift.

Konfigurasi Embedded Tomcat

Biasanya, perusahaan besar pakai satu server Tomcat standalone untuk menampung banyak aplikasi Java. Server ini bisa diklaster dan diskalakan secara horizontal maupun vertikal supaya bisa menangani beban kerja dengan baik. Dalam arsitektur seperti ini, satu server Tomcat melayani banyak aplikasi (1-to-many).

Server Tomcat Standalone vs. Embedded

Dalam embedded Tomcat, perbandingan antara server dan aplikasi jadi 1 banding 1. Artinya, satu aplikasi web Java hanya dijalankan oleh satu server Tomcat. Semuanya dibungkus ke dalam satu file arsip, biasanya berformat .zip, .jar, atau .war.

Istilah “embedded” sendiri merujuk pada fakta bahwa server Tomcat ikut dipaketkan bersama aplikasi ke dalam satu file yang gampang dipindah dan dikelola.

Contoh Penggunaan Embedded Tomcat

Salah satu fitur penting embedded Tomcat adalah bisa langsung dieksekusi. Selama komputer punya JRE dan sudah mengatur JAVA_HOME, kita bisa menjalankan server langsung dari terminal pakai perintah berikut:

C:/> java -jar embedded-tomcat-example.jar

embedded Tomcat port
Embedded Tomcat berjalan di port 8080

Begitu dijalankan, server Tomcat aktif dan aplikasinya bisa diakses lewat HTTP, baik itu halaman web, web service berbasis SOAP, atau REST API. Default port-nya adalah 8080.

Embedded Tomcat dengan Maven

Salah satu cara populer buat bikin embedded Tomcat adalah pakai plugin Maven-Tomcat.

Biasanya, developer membuat proyek Java berbasis Maven, lalu saat proses build, plugin Tomcat-nya dipanggil dengan opsi exec-war-only seperti ini:

/c/ embedded Tomcat example/maven-build
\$ mvn clean install tomcat7\:exec-war-only

Maven Tomcat jar
Maven membuat JAR berisi embedded Tomcat saat build

Embedded Tomcat di Spring Boot

Spring Boot adalah framework berbasis Java yang populer untuk bikin microservices. Secara default, IDE seperti Spring Tool Suite (STS) akan otomatis bikin embedded Tomcat tiap kali kita build atau deploy aplikasi.

STS juga punya fitur tambahan yang mendukung pengembangan microservices, misalnya fitur breakpoint dan debug langsung di dalam embedded Tomcat-nya.

Alternatif Embedded Tomcat

Tomcat bukan satu-satunya server aplikasi Java yang bisa di-embed. Ada juga WebSphere, Jetty, Wildfly, Payara, dan JBoss. Semua server ini bisa dipaketkan menjadi satu JAR atau WAR yang menyertakan server dan aplikasi sekaligus.

Contohnya, pengguna IBM yang migrasi dari WebSphere ke arsitektur microservices bisa pakai WebSphere Liberty dalam bentuk embedded.

Jenkins CI, misalnya, menggunakan Jetty sebagai embedded server-nya. Sementara Wildfly terkenal karena modularitasnya dan bisa dipangkas sesuai kebutuhan — cocok kalau mau alternatif embedded Tomcat yang ringan.

Embedded Tomcat vs. Standalone

Performa awal embedded Tomcat biasanya lebih berat dibanding standalone. Misalnya, jika ada 10 aplikasi dengan 10 embedded Tomcat, berarti akan ada 10 proses Java yang aktif. Sedangkan dengan Tomcat standalone, semua aplikasi bisa berjalan di satu proses saja.

Dengan embedded, setiap aplikasi butuh proses Java sendiri yang tentunya memakan resource lebih besar daripada sekadar thread. Tapi meskipun boros resource, embedded Tomcat menawarkan fleksibilitas yang lebih tinggi.

Keuntungan Embedded Tomcat

Embedded Tomcat bukan sekadar soal performa — justru kekuatannya ada di fleksibilitas. Tiap aplikasi bisa dijalankan, dimatikan, atau direstart tanpa ganggu aplikasi lain. Ini beda dengan standalone yang kalau server-nya mati, semua aplikasi ikut down.

Selain itu, kalau ada satu aplikasi yang butuh resource lebih, cukup aplikasi itu saja yang di-scale, tanpa harus scale semua aplikasi dalam satu server.

Tomcat, Docker, dan Kubernetes

Salah satu alasan utama pakai embedded Tomcat adalah kemudahannya saat digunakan dalam container seperti Docker dan dijalankan di lingkungan seperti Kubernetes atau OpenShift. Ini bikin proses deployment jadi lebih ringan dan scalable di cloud.

Dengan embedded Tomcat, aplikasi Java yang tadinya monolitik bisa ikut menikmati keuntungan arsitektur modern berbasis microservices.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *