首页 关于 归档

php log udp service by swoole

php web开发的时候,应用日志是必须的;但是,如果直接在业务逻辑进行写日志,难免会影响业务请求响应时间。
比如:file_put_contents 或fopen fwrite方式,跟请求是属于同步。
高并发情况下,影响更为明显。
所以采取udp上报数据,进行日志记录。当然,udp协议不可靠;对于记录日志来说,影响不大。
采取这种异步记录,减少对业务请求影响。
当然,还有好处,可以让日志统一管理及查看。

这里为了追求更好的性能,使用了php swoole来实现代码。
当然,也可以直接使用php socket 结合pcntl_fork 来创建udp log service。
下面是通过 swoole来实现的,详细请看github
环境

安装php swoole(www.swoole.com)

目录

├── config.inc.php
├── lib
│   ├── exception.php
│   ├── log_behavior.php
│   ├── log_client.php
│   ├── package.php
│   ├── swoole_behavior.php
│   └── swoole_service.php
├── log
│   ├── 2016120810.log
│   └── a.log
├── logservice.php
├── start.sh
└── test
└── test.php

使用

服务启动

/usr/local/php7/bin/php logservice.php --host 127.0.0.1 --port 12150 --worker 1 --task 2
或
修改start.sh文件,配置php路径,保存后执行
./start.sh

参数简述

--host listen ip
--port listen port
--worker swoole worker num
--task swoole task worker num

使用

请看test/test.php文件

Author: josephzeng

Date: <2016-12-10 Sat>

Generated by Emacs 24.5.1 (Org mode 8.2.10)

Last Updated <2016-12-10 Sat>

Validate