PHP code example of teamones / breaker

1. Go to this page and download the library: Download teamones/breaker library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

teamones / breaker example snippets


// config/breaker.php

return = [
    // 型
    'server' => [
        'name' => 'saas', // 当前服务名称
        'uuid' => '00a5ca80-4fe9-11eb-875c-c3e67d5eac81' // 随机码
    ],
    // optional
    'time_window' => 20, // 开路窗口时间 默认值 20s
    'failure_rate_threshold' => 15, // 故障率阈值 默认值 15%
    'interval_to_half_open' => 10 // 半开路窗口时间 默认值 10s
];

// config/breaker.php

return = [
   // 型
    'services' => ['im'], // 访问服务列表
    // optional
    'time_window' => 10, // 滑动窗口时间 默认值 10s
    'buckets' => 40, // 小的窗口数量  默认 40 (默认每个小窗口的时间跨度为250ms)
    'k' => 1.5 // 倍值 默认1.5
];

 $circuitConfig = [
      // 熔断器类型
    'server' => [
        'name' => 'saas', // 当前服务名称
        'uuid' => '00a5ca80-4fe9-11eb-875c-c3e67d5eac81' // 随机码
    ],
    // optional
    'time_window' => 20, // 开路窗口时间 默认值 20s
    'failure_rate_threshold' => 15, // 故障率阈值 默认值 15%
    'interval_to_half_open' => 10 // 半开路窗口时间 默认值 10s
];


$googleConfig = [
    // 

use Teamones\Breaker\BreakerFactory;
use Yurun\Util\HttpRequest; // 这个非必须

// im 为当前请求服务名
$service = 'im';

if (BreakerFactory::isAvailable($service)) { 
    // …… 此处省略服务调用过程
    
    // 用 http 调用举例 使用 Yurun\Util\HttpRequest
    $httpRequest = new HttpRequest;
    $res = $httpRequest->timeout(30000, 500)->get('http://www.baidu.com');
    
    if ($res->getStatusCode() === 200) {
       // 请求成功设置
       BreakerFactory::success($service);
    } else {
       // 请求失败设置
       BreakerFactory::failure($service);
    }
}