How to make active services highly available?
- by Jader Dias
I know that with Network Load Balancing and Failover Clusteringwe can make passive services highly available. But what about active apps?
Example: One of my apps retrieves some content from a external resource in a fixed interval. I have imagined the following scenarios:
Run it in a single machine. Problem: if this instance falls, the content won't be retrieved
Run it in each machine of the cluster. Problem: the content will be retrieved multiple times
Have it in each machine of the cluster, but run it only in one of them. Each instance will have to check some sort of common resource to decide whether it its turn to do the task or not.
When I was thinking about the solution #3 I have wondered what should be the common resource. I have thought of creating a table in the database, where we could use it to get a global lock.
Is this the best solution? How does people usually do this?
By the way it's a C# .NET WCF app running on Windows Server 2008