liveBook · Manning

Computer cluster

As explained in ASP.NET Core in Action, 3e

Clustering is a coordination technique in which multiple application instances distribute work so that a task is executed by only one instance.

A computer cluster coordinates multiple application instances so a scheduled task runs on only one instance at a time. This provides redundancy while allowing the application to scale horizontally. section 34.3.3

A Quartz.NET cluster depends on these pieces:

  • Persist job and trigger information in a shared database. section 34.3.3
  • Enable clustering so multiple schedulers coordinate and distribute jobs. section 34.4

Exchange-rate workers

If ten application instances each run the same BackgroundService, all ten may update exchange rates every five minutes. Quartz.NET clustering uses a database-backed schedule so only one instance handles each trigger while the instances remain available for scaling and redundancy. section 34.3.3

How ASP.NET Core in Action, 3e covers it

How deep it goes
Explains the duplicate-work problem and database-backed configuration, but does not detail the coordination algorithm.
Examples
Uses exchange-rate updates, ten application instances, Quartz.NET triggers, SQL Server persistence, and the UseClustering() setting.
What it assumes
Assumes background-task and Quartz.NET configuration knowledge, then establishes database persistence as clustering’s prerequisite.
What you can do after
Operate/configure Quartz.NET clustering by enabling database persistence and calling UseClustering().
How it connects
Connects clustering with Quartz.NET, background services, database persistence, horizontal scaling, and microservices.

Also explained in

Compare how 8 books explain computer cluster →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of ASP.NET Core in Action, 3e. The section links point to the parts of the book it draws on.