ezdeliveryco/laravel-database-redundancy

此包已被废弃,不再维护。未建议替代包。

一个轻量级中间件,用于在 Laravel 和 Lumen 中强制执行数据库冗余。

dev-master / 1.0.x-dev 2017-05-24 22:58 UTC

This package is not auto-updated.

Last update: 2019-04-29 13:28:29 UTC


README

一个轻量级中间件,用于在 Laravel 和 Lumen 中强制执行数据库冗余。

理念

此包是我们提高应用可用性的工作的成果之一。

如何工作?

我们从 database.php 的新设置区域读取两件事:hostport。有了它们,我们创建一个包含这些设置的随机列表。接下来,我们逐个尝试连接。

结果是支持多个数据库设置,并在失败时回退。

如何安装?

下载依赖

只需运行 composer require ezdeliveryco/DatabaseRedundancyMiddleware

设置新设置

在您的 database.php 设置中,您需要添加目标连接设置。

    /*
    |--------------------------------------------------------------------------
    | Connection rendundancy plan
    |--------------------------------------------------------------------------
    |
    | This settings make possible the smart usage of more than one connection
    |
    */

    'redundancies' => [

        'connection_1' => [
            'host' => env('DB_HOST_1'),
            'port' => env('DB_PORT_1'),
        ],

        'connection_2' => [
            'host' => env('DB_HOST_2'),
            'port' => env('DB_PORT_2'),
        ],

    ],

提示:您需要重复主连接,因为该包无论如何都会替换它们。

提示:我们只使用 hostport,但您可以使用任何其他设置,因为我们使用合并。

启用中间件

Laravel 5.1+

Http 中间件

要启用中间件,您需要更改您的 app/Http/Kernel.php 文件。基本上您需要这样做

use DatabaseRedundancyMiddleware\Laravel\HttpMiddleware;

class Kernel extends HttpKernel
{
    protected $middleware = [
        HttpMiddleware::class,
    ];
}
Artisan 实现

要启用中间件,您需要修改您的 app/Console/Kernel.php 文件。基本上您需要这样做

use DatabaseRedundancyMiddleware\Laravel\ArtisanBoostrap;

class Kernel extends ConsoleKernel
{
    /**
     * Hack to make possibe the redundancy in Artisan
     *
     * @return void
     */
    public function bootstrap()
    {
        // We still want to boostrap the default stuff
        parent::bootstrap();

        // Boostrap database redundancy
        $redundancyEngine = new ArtisanBoostrap();
        $redundancyEngine->handle();
    }
}

Lumen 5.2+

Http 中间件

要启用中间件,您需要更改您的 bootstrap/app.php 文件。基本上您需要这样做

$app->middleware([
    DatabaseRedundancyMiddleware\Lumen\HttpMiddleware::class,
]);
Artisan 实现

要启用中间件,您需要修改您的 app/Console/Kernel.php 文件。基本上您需要这样做

use DatabaseRedundancyMiddleware\Laravel\ArtisanBoostrap;
use Illuminate\Console\Scheduling\Schedule;

class Kernel extends ConsoleKernel
{
    /**
     * Hack to make possibe the redundancy in Artisan
     *
     * @return void
     */
    public function __construct(Application $app)
    {
        // We still want to boostrap the default stuff
        parent::__construct($app);

        // Boostrap database redundancy
        $redundancyEngine = new ArtisanBoostrap();
        $redundancyEngine->handle();
    }
}