Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Embedded vs Stand alone Tomcat ( HTTP ) server

I am working on a new project which would be a web application with a front end UI and a back end web service. I started looking into what servers to use like Tomcat / Jetty and so .. I also noticed that there is an embedded version of these HTTP servers. I don't understand when to use an embedded version against a standalone version. I tried googling but could not find a convincing answer, So would appreciate if some one to explain me the use-case for an embedded server. Thanks in advance.

like image 926
broun Avatar asked Dec 23 '13 02:12

broun


People also ask

What is the advantage of having an embedded Tomcat server?

Embedded Tomcat offers a way to package Java web applications that is consistent with a microservices-based approach to software development. It also makes it easier to distribute Java web applications through Docker containers and manage them through a container orchestration service, such as Kubernetes or OpenShift.

What is the difference between Apache Tomcat and HTTP server?

Key difference between Tomcat and the Apache HTTP Server the Apache HTTP Server, but the fundamental difference is that Tomcat provides dynamic content by employing Java-based logic, while the Apache web server's primary purpose is to simply serve up static content such as HTML, images, audio and text.

What is embedded HTTP server in spring boot?

An embedded server is embedded as part of the deployable application. If we talk about Java applications, that would be a JAR. The advantage with this is you don't need the server pre-installed in the deployment environment. With SpringBoot, the default embedded server is Tomcat.


1 Answers

Embedded servers are useful when you treat your application as an OS process and it will be started with something like java -jar youapp.jar. In this scenario, setting up the box upfront with a given app server, say, Tomcat, is not necessary. Such applications can be run by the end user without needing extra installation and configuration of an app server.

Applications like Jenkins for example hugely benefit from such packaging. Another scenario is when deploying on cloud services like Heroku. You wrapping the app server within your jar eliminates the need to get the server installed on such cloud boxes.

Here essentially a single web app runs on a given embedded server. However if you wish to install two web apps on lets say two contexts ${root}/app1 ${root}/app2 then embedded app server is not a good option for you.

like image 97
kdabir Avatar answered Oct 10 '22 00:10

kdabir