关于php:ThinkSwoole-全面协程化你的-ThinkPHP-应用

3次阅读

共计 1438 个字符,预计需要花费 4 分钟才能阅读完成。

ThinkPHP 是一款经典的国产开源 PHP 开发框架。ThinkPHP 诞生于 2006 年,距今曾经有 17 年历史。ThinkPHP 在国内的利用十分宽泛,很多知名企业应用了 ThinkPHP 来构建 Web 我的项目。

晚期版本的 ThinkPHP 次要是运行在 PHP-FPM 模式下。为了解决长连贯、高并发、阻塞 IO 的问题,ThinkPHP 官网提供了 Think-Swoole 组件,底层全面适配了 Swoole 协程,使得 ThinkPHP 利用能够一键协程化。

GitHub 地址

  • ThinkPHP
  • Think-Swoole

创立 ThinkPHP 我的项目

composer create-project topthink/think tp

应用 composer 命令能够疾速创立一个 ThinkPHP 新我的项目。已有我的项目可跳过此步骤。

引入 Think-Swoole 组件

composer require topthink/think-swoole

启动 HTTP 服务

间接在命令行下启动 HTTP 服务端。

php think swoole

启动实现后,默认会在 0.0.0.0:80 启动一个 HTTP Server,能够间接拜访以后的利用。相干配置参数能够在 config/swoole.php 外面配置(具体参考配置文件内容)。

若本机已装置了 Nginx,可能 80 已被占用,可批改 config/swoole.php 设置为其余的端口

启动后通过 http://127.0.0.1:9580/ 拜访程序

热更新

因为 Swoole 服务运行过程中 PHP 文件是常驻内存运行的,这样能够防止反复读取磁盘、反复解释编译,以便达到最高性能。所以更改业务代码后必须手动 reload 或者 restart 能力失效。

Think-Swoole 提供了热更新性能,在检测到相干目录的文件有更新后会主动 reload,从而不须要手动进行 reload 操作,不便开发调试。

如果你的利用开启了调试模式,默认是开启热更新的。原则上,在部署模式下不倡议开启文件监控,一方面有性能损耗,另外一方面对文件所做的任何批改都须要确认无误能力进行更新部署。

热更新的默认配置如下:

'hot_update' => ['enable' => env('APP_DEBUG', false),
    'name' => ['*.php'],
    'include' => [app_path()],
    'exclude' => [],],

当咱们在利用的根目录下定义一个非凡的 .env 环境变量文件,外面设置了 APP_DEBUG=true 会默认开启热更新,你也能够间接把 enable 设置为 true

连接池

Think-Swoole 实现了数据库连接池性能,包含 MySQLRedis 等。

应用连接池要先开启 Swoole 一键协程,须要配置如下参数:

'coroutine' => [
    'enable' => true,
    'flags' => SWOOLE_HOOK_FLAGS,
],

连接池配置参数如下:

'pool' =>[
    'db' => [
        'enable' => true,
        'max_active' => 3,
        'max_wait_time' => 5,
    ],
    'cache' => [
        'enable' => true,
        'max_active' => 3,
        'max_wait_time' => 5,
    ],
],

参数阐明:

  • enable:是否启用连接池
  • max_active:最大连接数,超过将不再新建连贯
  • max_wait_time:超时工夫,单位为秒

max_activemax_wait_time 须要依据本身业务和环境进行适当调整,最大化进步零碎负载

正文完
 0