Connection manager for high availability database clusters
Connection manager for high availability database clusters, (*1)
Let`s say you have a distributed database cluster whith 2 APIs. Both APIs point you to exactly the same database. Which API do you connect to? What happens if one of those APIs suddenly die? How fast can you redirect all your database connections to the healthy API?, (*2)
This is how RedundantDB class helps you!, (*3)
Easy - just provide connection information and you are ready to connect, (*4)
Smart - Finds the fastest/shortest route to the API. Immediatelly switches APIs if the current one is unreachable, (*5)
PDO - Returns PDO object if successfully connected, (*6)
Dependencies - Depends on \Memcached and \PDO, (*7)
Add RedundantDB to composer.json configuration file., (*8)
$ composer require andriusgecius/RedundantDB
And update the composer, (*9)
$ composer update
// Require compser autoloader file require 'vendor/autoload.php'; // Initialize $dbConfig = [ 1 => [ 'host' => 'HOSTNAME', 'port' => 3306, 'database' => 'DBNAME', 'username' => 'USERNAME', 'password' => 'PASSWORD', 'type' => 'mysql' ], 2 => [ 'host' => 'HOSTNAME', 'port' => 3306, 'database' => 'DBNAME', 'username' => 'USERNAME', 'password' => 'PASSWORD', 'type' => 'mysql' ], 'memc' => [ 'host' => 'localhost', 'port' => 11211 ], 'charset' => 'utf8' ]; $RedundantDB = new \RedundantDB\Connection($dbConfig); $connect = $RedundantDB->connect(); //Returns PDO
This connection manager has been tested only with MySQL cluster. Any contributions from developers who have experience with different high availability relational database clusters are highly appreciated!, (*10)
Please use it as you please!, (*11)