MySQL InnoDB cluster is a collection of products that work together to provide a high availability solution. A group of MySQL servers can be configured to create a cluster using MySQL Shell. The cluster of servers has a single master, called the primary, which acts as the read-write master. Multiple secondary servers are replicas of the master. A minimum of three servers are required to create a high availability cluster. A client application is connected to the primary via MySQL Router. If the primary fails, a secondary is automatically promoted to the role of primary, and MySQL Router routes requests to the new primary.
To implement a high availability solution InnoDB cluster uses the following MySQL technologies:
MySQL Router 2.1.2 or higher. Caches the metadata of the InnoDB cluster and performs high availability routing to the MySQL Server instances which make up the cluster. If the primary instance becomes unavailable, MySQL Router automatically routes client requests to a promoted secondary (the new primary).
MySQL Server 5.7.17 or higher. This provides the MySQL Group Replication mechanism to allow data to be replicated from the primary to the secondaries in the cluster.
An overview of how these technologies work together is shown in the following diagram:
AdminAPI is available as of MySQL Shell 1.0.8.
For more background information see Chapter 3, Using MySQL as a Document Store.