Managing scalability and availability with two servers running Apache Httpd, Apache Mina and MySQL
- by celalo
Hello,
I am not a developer and I don't much experience with scalable server architectures. But I am in need of a highly available and scalable system for one of my projects.
There is going to be two servers I am going to use for the time being. Both with 4 core CPUs and 8 GB RAM with RAID structures running CentOS 5.4. I will also have feature called "Failover IP" which enables to direct an IP address to another server within short time.
The applications which will be run on the servers:
There is going to be a Java application based on Apache Mina server for handling TCP requests from some hundreds of network devices where the devices are going to send request as much as one request per minute. Handling those requests, includes parsing the requests and inserting a few rows to the Database. Parsing requests before inserting data to the DB does take neglectable time.
There is going to be MySQL server, as I stated above.
Also there is going to be a PHP web application running on Apache Httpd Server which uses the same DB with the Java application.
What I wish to have is to make use of those two servers at the most. I was imagining to have the servers identical, sharing the work load. MySQL could be a cluster maybe? And if some application fails or the whole machine goes down, the other will continue serving the requests seamlessly.
Reminding that a "Failover IP" feature will be available for me to take advantage of. Also, It should be kept in mind that number of servers could increase in time, to meet the demand.
What can you suggest? Which kind of tools I can make use of? Which kind of monitoring software (paid/unpaid) I have?
Thanks in advance.