luoxiaojun/sw-fw-less-app

Swoole Http 服务器应用

dev-master 2022-01-24 11:15 UTC

This package is auto-updated.

Last update: 2024-09-24 16:57:03 UTC


README

描述

Swoole http 服务器(无框架)

特性

  1. 更快的路由器
  2. 路由器与全局中间件
  3. 模型(MySQL & Elasticsearch、Json 可序列化、数组可访问)
  4. 查询构建器(MySQL & Elasticsearch)
  5. 连接池(MySQL、Redis、实验性 AMQP-0-9-1、实验性 HBase)
  6. 存储(文件、七牛、阿里OSS)
  7. 完整协程
  8. 日志(基于 Monolog)
  9. 分布式锁(基于 Redis)
  10. 参数验证器
  11. 监控
  12. AMQP-0-9-1
  13. Zipkin 跟踪
  14. 动态故障注入
  15. 热重载(包括业务代码、配置、路由,仅推荐开发时使用)
  16. 实验性 Grpc(必须开启 http2)
  17. Apollo 配置中心

注意

  • 不要在控制器或中间件构造函数中包含 I/O 操作
  • 不要开启抢占式调度器

要求

  • PHP 7.1+
  • Swoole 4.2.10+

安装

composer create-project luoxiaojun/sw-fw-less-app=dev-master sw-fw-less --prefer-dist -vvv

部署

Nginx

Nginx 配置示例(根据您的需求修改)

server {
    listen 80;
    
    ## Modify according to your requirements
    server_name www.sw-fw-less.dev;

    location / {
        ## Modify according to your requirements
        proxy_pass http://127.0.0.1:9501;
    }
}

Docker

docker run -d -P luoxiaojun1992/sw-fw-less:latest

用法

启动服务器

php start.php

示例 API

curl -i 'http://127.0.0.1:9501/ping'

Grpc 生成器

cd tools && ./generate_grpc.sh path/to/grpc/bins/opt/grpc_php_plugin

生成的文件

app
├── grpc
│   ├── Demo
│   │   ├── GreetingClient.php       -- php service client
│   │   ├── HelloReply.php           -- request message class generated by protoc
│   │   └── HelloRequest.php         -- response message class generated by protoc
│   └── GPBMetadata
│       └── Demo.php
│
└── services
    ├── GreetingClient.php           -- php service client for sw-fw-less
    ├── GreetingInterface.php        -- php service interface for sw-fw-less
    └── GreetingService.php          -- php server side service for sw-fw-less

性能

环境

  • OS: MacOS 10.14.1
  • CPU: 2.3 GHz Intel Core i5 4 核
  • 内存: 16 GB 2133 MHz LPDDR3
  • Swoole: 4.2.9
  • PHP: 7.2.8
  • Redis: 4.0.11
  • API: http://127.0.0.1:9501/redis?key=key
  • 并发: 300
  • 工具: JMeter 4.0 r1823414

结果: Load Testing

文档

请参阅 文档.