andriusgecius/redundant-db

高可用数据库集群的连接管理器

1.0.3 2020-07-29 14:43 UTC

This package is not auto-updated.

Last update: 2024-09-19 09:44:32 UTC


README

高可用数据库集群的连接管理器

这是什么?

假设你有一个拥有2个API的分布式数据库集群。这两个API都指向同一个数据库。你应该连接哪个API?如果其中一个API突然失效,你会怎样?你能多快将所有数据库连接重定向到健康的API?

这就是RedundantDB类能帮你的!

主要功能

  • 简单 - 只需提供连接信息,你就可以准备连接

  • 智能 - 寻找到达API的最快/最短路径。如果当前API不可达,立即切换API

  • PDO - 成功连接后返回PDO对象

  • 依赖 - 依赖于\Memcached和\PDO

开始使用

通过composer安装

将RedundantDB添加到composer.json配置文件。

$ composer require andriusgecius/RedundantDB

并更新composer

$ 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

免责声明

此连接管理器仅与MySQL集群进行了测试。欢迎有不同高可用关系型数据库集群经验的开发者贡献!

许可

请随意使用!