PHP 中的断路器模式
发布于 作者 Paul Redmond
Circuit Breaker PHP 是由 Leonardo Carmo 开发的一个软件包,它使用 Redis 作为后端实现了 断路器设计模式。
如果您不熟悉此模式或想要了解更多信息,请查看 Martin Fowler 的 断路器 文章。
该软件包提供了一个 Redis 适配器(使用 PHP Redis 模块),它遵循一个接口,这意味着您可以创建不同的适配器来与这个断路器软件包配合使用。
以下是从 自述文件 中的示例,演示如何使用提供的 Redis 适配器设置断路器的实例。
use LeoCarmo\CircuitBreaker\CircuitBreaker; // Connect to redis$redis = new \Redis();$redis->connect('localhost', 6379); $adapter = new \LeoCarmo\CircuitBreaker\Adapters\RedisAdapter($redis, 'my-product'); // Set redis adapter for CBCircuitBreaker::setAdapter($adapter);
这是一个使用该库可以做的一些事情的基本示例。
// Check circuit status for service: `my-service`if (! CircuitBreaker::isAvailable('my-service')) { die('Circuit is not available!');} // Usage example for success and failuretry { Service::execute('something'); CircuitBreaker::success('my-service');} catch (\ServiceException $e) { CircuitBreaker::failure('my-service'); die($e->getMessage());}
您可以在 GitHub 上 leocarmo/circuit-breaker-php 了解更多关于此软件包的信息,获得完整的安装说明,并查看源代码。