高性能 PHP socket 框架 Workerman

码农软件 · 软件分类 · 高性能网络开发库 · 2019-09-01 13:41:29

软件介绍

Workerman 是一个高性能的PHP socket 服务器框架,workerman基于PHP多进程以及libevent事件轮询库,PHP开发者只要实现一两个接口,便可以开发出自己的网络应用,例如Rpc服务、聊天室服务器、游戏服务器等。

Workerman 的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务,而不用去了解PHP socket以及PHP多进程细节。 workerman本身是一个PHP多进程服务器框架,具有PHP进程管理以及socket通信的模块,所以不依赖php-fpm、nginx或者apache等这些容器便可以独立运行。

特性

  • 使用PHP开发

  • 支持PHP多进程

  • 支持TCP/UDP

  • 接口上支持各种应用层协议

  • 支持libevent事件轮询库,支持高并发

  • 支持服务平滑重启

  • 支持PHP文件更新检测及自动加载

  • 支持PHP长连接

  • 支持以指定用户运行子进程

  • 支持telnet远程控制

  • 高性能

基于workerman已经有很多的网络应用程序,例例如多人在线小蝌蚪游戏 PHP-Json-RpcPHP-Thrift-RpcPHP-WebSocket聊天室PHP统计监控系统 等等。

示例代码:

<?php
use Workerman\Worker;
require_once './Workerman/Autoloader.php';

// 创建一个Worker监听2346端口,使用websocket协议通讯
$ws_worker = new Worker("websocket://0.0.0.0:2346");

// 启动4个进程对外提供服务
$ws_worker->count = 4;

// 当收到客户端发来的数据后返回hello $data给客户端
$ws_worker->onMessage = function($connection, $data)
{
    // 向客户端发送hello $data
    $connection->send('hello ' . $data);
};

// 运行
Worker::runAll();

性能压力测试

测试环境:

系统:ubuntu 12.04 LTS 64位
内存:8G
cpu:Intel® Core™ i3-3220 CPU @ 3.30GHz × 4

业务逻辑:

hello world

结果:

短链接(每次请求完成后关闭链接,下次请求建立新的链接):
条件: 压测脚本开500个线程,每个线程链接Workerman 10W次,每次链接发送1个请求
结果: 吞吐量:3W/S , cpu:60% , 内存占用:4*8M = 32M

长链接(每次请求后不关闭链接,下次请求继续复用这个链接):
条件: 压测脚本开1000个线程,每个线程链接Workerman 1次,每个链接发送10W请求
结果: 吞吐量:13W/S , cpu:68% , 内存占用:4*8M = 32M
无流量抖动,无内存泄漏,性能非常强悍

workerman启动界面:

workerman状态查看界面:

本文地址:https://www.codercto.com/soft/d/13643.html

深入理解LINUX内核(第三版)

深入理解LINUX内核(第三版)

(美)博韦,西斯特 / 陈莉君;张琼声;张宏伟 / 中国电力出版社 / 2007-10-01 / 98.00元

为了彻底理解是什么使得Linux能正常运行以及其为何能在各种不同的系统中运行良好,你需要深入研究内核最本质的部分。内核处理CPU与外界间的所有交互,并且决定哪些程序将以什么顺序共享处理器时间。它如此有效地管理有限的内存,以至成百上千的进程能高效地共享系统。它熟练地统筹数据传输,这样CPU 不用为等待速度相对较慢的硬盘而消耗比正常耗时更长的时间。 《深入理解Linux内核,第三版》指导你对内核......一起来看看 《深入理解LINUX内核(第三版)》 这本书的介绍吧!

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具