wangrunxinyes/easyswoole

高效的 swoole 框架

v1.0.1 2021-01-13 06:59 UTC

This package is auto-updated.

Last update: 2024-09-13 16:49:57 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads

EasySwoole - 高性能 Swoole 框架

EasySwoole 是一个基于 Swoole 扩展的分布式、持久化内存 PHP 框架。它专为 API 设计,以消除与进程调用和文件加载相关的性能惩罚。EasySwoole 高度封装了 Swoole 服务器,同时仍保留 Swoole 服务器的原始功能,支持同时监控 HTTP、自定义 TCP 和 UDP 协议,允许开发者以最小的学习成本和努力编写多进程、异步和高可用应用程序。

  • 基于 Swoole 扩展
  • 内置 HTTP、TCP、WebSocket、Udp 协程服务器
  • 全局依赖注入容器
  • 基于 PSR-7 的 HTTP 消息实现
  • 支持 HTTP、TCP、WebSocket、Udp 中间件
  • 可伸缩高性能 RPC
  • 数据库 ORM
  • MySQL、Redis、RPC、HTTP 协程客户端
  • 协程和异步任务交付
  • 自定义用户进程
  • 支持 RESTful
  • 高性能路由器
  • 快速灵活的参数验证器
  • 强大的日志组件
  • 通用连接池
  • 支持远程控制台
  • 支持 Crontab 规则定时器

文档

压力测试

<?php

namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;


/**
 * Class Index
 * @package App\HttpController
 */
class Index extends Controller
{
    public function index()
    {
        $this->response()->write('Hello World');
    }
}

1 核心 1G 内存

命令:ab -c 100 -n 10000 http://192.168.0.11:9501/

Server Software:        EasySwoole
Server Hostname:        192.168.0.11
Server Port:            9501

Document Path:          /
Document Length:        21 bytes

Concurrency Level:      100
Time taken for tests:   0.652 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      1690000 bytes
HTML transferred:       210000 bytes
Requests per second:    15325.16 [#/sec] (mean)
Time per request:       9.685 [ms] (mean)
Time per request:       0.097 [ms] (mean, across all concurrent requests)
Transfer rate:          2592.05 [Kbytes/sec] received

8 核心 16G 内存

命令:ab -c 100 -n 10000 http://192.168.0.4:9501/

Server Software:        EasySwoole
Server Hostname:        192.168.0.4
Server Port:            9501

Document Path:          /
Document Length:        21 bytes

Concurrency Level:      100
Time taken for tests:   0.746 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      1690000 bytes
HTML transferred:       210000 bytes
Requests per second:    66935.97 [#/sec] (mean)
Time per request:       1.149 [ms] (mean)
Time per request:       0.015 [ms] (mean, across all concurrent requests)
Transfer rate:          2265.40 [Kbytes/sec] received

快速入门

composer require easyswoole/easyswoole=3.x
php vendor/bin/easyswoole install
php easyswoole start

单元测试

安装 easyswoole 后,运行

php easyswoole phpunit ./vendor/easyswoole/easyswoole/tests

使用 Docker

获取 Docker 镜像

docker pull easyswoole/easyswoole3

运行

docker run -ti -p 9501:9501 easyswoole/easyswoole3
  • WorkerDir: /easyswoole
  • 运行 Easyswoole : php easyswoole start

其他

  • 示例代码的 Git 仓库

  • QQ 交流群

    • VIP 群 579434607 (本群需要付费 599 元)
    • EasySwoole 官方一群 633921431(已满)
    • EasySwoole 官方二群 709134628
  • 商业支持: