1

I have an application that will process data it receives through high volume, low overhead requests sent from different internet-enabled hardware devices. These data will be received continually and will only increase in future as more and more devices are added to the system. Once data is received, after some small processing, it will be inserted in to the database (MySQL).

My question is, what sort of server software should I use for this? Is node.js the best candidate for processing the maximum number of such requests within a given hardware constraint or is nginx better for such applications? Also are there any best practices for handling such requests? For example, I read that if I use node.js, I might have to take a look at the ulimit of the OS to ensure that enough files can be created in case of large number of concurrent requests...

Thanks.

fijas
  • 111
  • 3
  • This question is very broad. I'd recommend following the [High Scalability](http://feeds.feedburner.com/HighScalability) blog. – Deer Hunter Jul 04 '14 at 06:31

1 Answers1

1

At least newrelic say, that java is best for that:

The main New Relic web application has always been a Rails app. The data collection tier was originally written in Ruby, but was eventually ported over to Java. The primary driver for this change was performance. This tier currently supports over 180k requests per minute and responds in around 2.5 milliseconds with plenty of headroom to go.

from http://highscalability.com/blog/2011/7/18/new-relic-architecture-collecting-20-billion-metrics-a-day.html

Kazimieras Aliulis
  • 2,324
  • 2
  • 26
  • 46
  • Thanks for the answer. I had initially thought about using java but it has always struck me as "a bit too heavy" if you know what I mean. But anyway i had come across this performance comparison of node.js vs java: http://java.dzone.com/articles/performance-comparison-between . I know it is like comparing apples and oranges but the comparison seemed relevant to my use-case. – fijas Jul 04 '14 at 06:54
  • 1
    Then choose the one language, that you know best. Anyway your backend (database) will be biggest contention point, when scaling, not your programming language;) – Kazimieras Aliulis Jul 04 '14 at 07:32