Skip to content

andhm/qlimiter-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qlimiter-go

限流 go-server & php-client

背景

该项目以服务的方式提供更精准的秒级限流支持 服务端使用 golang 实现,同时提供了 php 版本的client sdk 调用示例

使用

  1. 启动 server (提前编译好 qlimiter)
./qlimiter &
  1. 客户端调用 (php版本,sdk位于client文件夹内,将该文件夹内的文件引入到自己项目中即可)
<?php
require 'init.php';
define("QLIMITER_PHP_ROOT", "{$path-to-sdk}");
$client = new Qlimiter_Client("127.0.0.1", 9091);
try {
    $limitKey = 'test';   // 根据不同的业务设置不同的key
    $limitMax = 1000;     // 每秒超过该值即触发限流,limit方法返回值将为false
    $retCurrLimitVal = 0; // 当前秒,并发量
    $res = $client->limit($limitKey, $limitMax, $retCurrLimitVal); // 返回值 true:未触发限流, false:触发限流
    if ($res) {
        echo '没有触发限流,当前值:'.$retCurrLimitVal;
    } else {
        echo '触发限流!';
    }
} catch (Exception $ex) {
    var_dump($client->getHost(), $ex->getMessage());
}

About

限流 go-server & php-client

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published