两年来,我使用基于Swagger的代码生成器在Go上编写了微服务。事实证明,该解决方案非常紧凑且非常快速。我目前正在使用PHP,因此我决定寻找解决语言生态系统中相同问题的方法。我知道并且喜欢Laravel和Symfony,但我不想将它们拖入项目中-太多的电池需要您花很多钱才能进入项目和性能。结果,Comet出现了-一种基于PHP的现代框架,用于利用SlimPHP和Workerman团队的经验来开发快速API。普通虚拟机上成千上万的RPS,延迟不到一毫秒!为了没有根据,我将给出Comet和其他流行框架的测试结果。为了更诚实地进行比较,从所有测试参与者的组件中删除了所有繁重的模块(例如ORM)。第一种情况是以成千上万的竞争性wrk请求的形式模仿高负载,该方法以纯文本形式返回“ Hello,World!”欢迎行:
为了估计最小延迟,我们使用了单个客户端依次向同一客户端发送一个请求的选项端点:
从结果可以看出,Comet体系结构的功能使您能够以比传统框架最小的延迟处理十倍大的请求流。让我们看一下代码,以了解在Comet上的实际开发中会遇到什么:use Comet\Comet;
require_once __DIR__ . '/vendor/autoload.php';
$app = new Comet();
$app->get('/hello', function ($request, $response) {
$response
->getBody()
->write("Hello, Comet!");
return $response;
});
$app->run();
一切都很透明:使用路由器和闭包可以提供紧凑的代码,与NodeJS / Express开发人员所使用的代码更相似。我已经在GitHub上发布了所有代码,并计划扩展框架的功能:https : //github.com/gotzmann/comet我将很乐于评论,提交,当然还有- 在实际项目中使用Comet :)