I am in the middle of a project where we created a backend for processing advertising campaigns in Grails, and I am trying to find the best way to create a part of an advertising server. That is, the part that will serve the actual ads for end users (browsers).
In my last three projects, I have been using Grails, and I really enjoy the fast development and good support of the Java community through Spring and Hibernate. However, Grails still has performance issues, and I'm not sure if this is the right choice for this task. I look at other alternatives, but cannot decide where to go. The server should be able to handle several thousand requests per second, and should also be reliable. The database structure is as follows (simplified):
Ad ==> site, position, percent of view (percent of time the ad is shown)
Thus, the ad server should receive the necessary rows from the database for a particular site and position and choose which one will be displayed (depending on the percentage).
Below are the various options that I am considering (all of which should have multiple instances and use a load balancer).
- Grails along with Redis and
MongoDB - I did not find any performance reports with this trio. In my previous projects, we found that Grails has a lot of performance problems, many of which we handled differently, but for the announcement of the Server, I'm not sure if it will.
- Node.js
- Node.js
,
,
.
- Ruby on Rails
-
Ruby on Rails ,
,
Ruby on Rails
,
Grails.
- PHP .
PHP,
,
PHP, ,
.
.