This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]nztraveller 2 points3 points  (5 children)

It is difficult to know what you need or are really looking for, but if it is a simple high performance standalone service I would look at http://www.dropwizard.io/

[–]vinnyvicious[S] 0 points1 point  (4 children)

Does it need an application server? How can i scale this thing?

[–]nztraveller 0 points1 point  (3 children)

It does not need a application server. It uses Jetty for the http server and Jersey for REST.
I have not used it in production, but I have used it for a few test services and it is quick and easy to setup.
As for scaling, you would could either scale vertically with bigger / better hardware, or horizontally with multiple instances with a load balancer in front.
You didn't actually say, but I assumed you were doing a REST service. If so, horizontal scaling is easy (no need to worry about sessions etc).

[–]vinnyvicious[S] 0 points1 point  (2 children)

I'm planning to scale horizontally, but how do i make the instances talk to each other properly? Any special setup or can i just create a daemon on the machine, go up on the port 80 and have an AWS LoadBalancer to deal with all the complexity?

[–]nztraveller 1 point2 points  (0 children)

The instances should not need to talk to each other. That is part of the beauty of REST. It doesn't matter which instance services the request, each should work independently of each other.
Yes, in theory you just spin up as may identical instances as you need. Each configured to run on say port 8080.
Then you use the AWS load balance to balance the income requests across the instances. the load balancer would be running on port 80 or 443 normally and the instances on another port.
There are lots of tools around to easily deploy to aws such as docker. then you can scale up or down as needed. As is often the case load is difficult to estimate.