ezdeliveryco / laravel-database-redundancy
此包已被废弃,不再维护。未建议替代包。
一个轻量级中间件,用于在 Laravel 和 Lumen 中强制执行数据库冗余。
dev-master / 1.0.x-dev
2017-05-24 22:58 UTC
Requires
- php: >=5.5.9
Requires (Dev)
- phpunit/phpunit: ~5.5
This package is not auto-updated.
Last update: 2019-04-29 13:28:29 UTC
README
一个轻量级中间件,用于在 Laravel 和 Lumen 中强制执行数据库冗余。
理念
此包是我们提高应用可用性的工作的成果之一。
如何工作?
我们从 database.php 的新设置区域读取两件事:host 和 port。有了它们,我们创建一个包含这些设置的随机列表。接下来,我们逐个尝试连接。
结果是支持多个数据库设置,并在失败时回退。
如何安装?
下载依赖
只需运行 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'),
],
],
提示:您需要重复主连接,因为该包无论如何都会替换它们。
提示:我们只使用 host 和 port,但您可以使用任何其他设置,因为我们使用合并。
启用中间件
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(); } }