Is it possible to run Spring Cloud Gateway on an external application server? - spring-boot

I want to create a war file of Spring Cloud Gateway Project (version 2.1.2.RELEASE) and deploy it on a container which supports reactive, is it possible? which application server is suggested?

AFAIK this is possible, but I wouldn't recommended it. If you package your application as a runnable jar it will ship with an embedded application server so it can run everywhere.

Related

Spring boot webservice to start and be discoverable when JBOSS EAP starts

We need to create independent spring boot web services for our apps which runs in JBOSS EAP. Can we do the below if its possible.
Spring Boot is typically deployed as a runnable jar but our apps are EAR deployed. Can we bootstrap / launch the spring boot listener / controller when the EAR application starts)
Can we register the services on start to facilitate automated discoverability of services (typically done with consul/ etcd/ zookeeper etc)
You can generate a WAR instead of a JAR and deploy this. If this is not ok you can put the WAR in an EAR
Read the docs: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html
Yes. If you have a service registry in place you can use this with Spring Cloud.
Please read the documentation:
https://spring.io/guides/gs/service-registration-and-discovery/

How to build and deploy Spring Boot no-web app to TomEE?

I have a simple Spring Boot JMS app like this. It have no web-layer and I don't want to add web layer to that app. It should be just one JMS microservice, hidden from web.
But I want to run it inside TomEE (as EJB or something). How can I do it?
you can deploy your app as an ear without any webmodule. Alternatively you can deploy it to openejb-standalone instead of tomee.

Cloud Foundry : Spring boot vs WAR file

I am new to the world of Cloud, CloudFoundry, Saas, PaaS, IaaS, etc.
So I have few very fundamental questions.
Who is better Spring boot or war file in terms of deploying an application or a service to a cloud using cloud foundry?
WHY ?
If I want to deploy my war file on a PaaS cloud then who kicks it off?
As in where is the server?
How will I know which server my war file is deployed to?
Is using Spring-boot with embeded tomcat for PaaS mandatory?
What if my application does not use spring-boot (no spring reference in pom as well) then can I deploy my application war file on cloud? How?
There is nothing like better in war or Spring boot jar. They both are underhood same things, where Spring boot jar manages the server embedded in it and war does not have that.
Cloud Foundry has something like BuildPacks. You need to define a buildpack when you do a cf push. If you select a java build pack it has the things required to run a war on server. It gets the Java, Tomcat Server and all other dependencies needed to run the war.
https://github.com/cloudfoundry/java-buildpack
Cloud foundry creates a droplet, which is basically the execution context with all required dependencies. This is used to run the actual VM on the cloud.
You need not know which server your war is deployed to. That is the basic idea behind the cloud deployment. It may be on a single/multiple VMs under the hood. So what you need to know is something called routes. Routes are the actual addresses to your apps. You need to create routes and bind them to your application, and later app can be accessed using the routes.
https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#routes
No using embedded servers is not mandatory in Any Cloud PAAS. War can be directly deployed. All PAAS platforms has support for this. Cloud foundry way of doing this is through build packs.
CF : https://docs.cloudfoundry.org/buildpacks/
Heroku : https://devcenter.heroku.com/articles/java-webapp-runner
Any application/ non spring apps which is plain war or jar can be used to run on PAAS platforms.

How to Deploy spring boot application using Eureka Server in windows

If i was using apache tomcat as web server then i can simply take the Jar file and deploy in apache running in windows.
How can i deploy same when using Eureka Server in windows?
Do we have any server installation of Eureka?
Kiran, Each Spring Boot application you developed is standalone application. Whenever application is built embedded tomcat is packed inside the package. So it means it does not require extra effort for you side, just port the application to target machine and double click the application -> it will start its magic.
thus, created package is not suitable for separate running tomcat as it contains unnessary stuff.
If you don't want to deploy on separate tomcat instead of standalone then follow guide
http://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html

How to deploy a spring integration component?

I've developed a spring integration component that is to sit on a server and process messages coming in over an inbound RMI channel do some processing/filtering and then send out some messages over a different RMI channel.
Currently, for testing, I've been running it using a Main class that just loads the context, which sets up the inbound RMI gateway and it's working fine. But I don't think that this is appropriate for a production environment.
What is the best way to deploy this type of project to a server?
If I were working in a .Net I'd be deploying this type of application as a windows service, is that what I should be doing here?
The application that is sending me data is hosted in Tomcat, would it be a good idea to also run this application within the same Tomcat container (Current requirements are for both components to be on the same machine this may change)? And if so how?
I'm currently looking into Spring Boot, am I on the right path?
I think the best would be Spring Boot, as it's made to easily allow running different types of applications. Also, you don't need Tomcat if you can run the same component with a simple Main and not using UI. Spring Boot, also, has a sample using Spring Integration here, so you should be up and running in no time.

Resources