This question is more of an architecture based question. I would like some solutions using .net technologies. I would also like to keep database operations to a minimum. That means I do not want too much polling of the database for statuses and such
I have two application servers (windows 2003 server based) on which I want to do some type of load balancing. For discussion we shall call it AppX1 and AppX2. The app also uses SQL Server to store and retrieve.
I have some location information to process, data for which comes from excel files. Data from the excel file will be loaded into the database first via a windows service.
I would like a simple approach where I can split processing load between the two app servers. Maybe AppX1 can be the master and AppX2 will be a slave. AppX1 can communicate to AppX2 to process certain set of locations. What is the best way to achieve this communication? Is WCF an option?
Once AppX2 completes it will dump information back into a database and inform AppX1. AppX1 can then send more locations to AppX2 to process.
Rather than divide your functionality across servers, I would, without knowing further/deeper details of your system, implement stateless service calls, multi-threaded behavior within the service implementation, (very easy in .NET) and a single instance/multiple concurrency service host. Then use an actual load balancer, or even just Windows NLB, to split calls across servers, serving a single call on a single server in the most efficient way possible.