阅读更多

2顶
0踩

编程语言

PHP的高性能Server框架Swoole已发布C扩展版本。

 

 

Swoole使用纯C编写,以PHP扩展的方式提供了一个强大的异步并行Server框架,特性如下:

 

  • 基于linux epoll+eventfd,不依赖libevent等第三方库,在Linux下可直接编译。
  • 支持3种模式Call、Writer和Worker。
  • 网络模块是完全异步非阻塞的,而且实现了读写分离,无锁设计。

运行模式

  • Call模式是在Reactor线程中直接回调,适用于IO很轻,逻辑简单的网络服务器
  • Writer模式是将数据投递给Writer线程,由Writer线程处理请求,Reactor线程继续处理新的网络请求。是call模式的加强版。这里使用了共享内存队列的设计,性能很好。
  • Worker模式是用类似Nginx的方式,采用了proxy+worker多进程的模式,将请求投递给Worker进程去处理,Worker进程处理完后再交由Writer线程写回客户端。这种方式比较适合业务比较重的场景。Swoole扩展提供了进程管理的功能,当worker进程异常结束时,父进程会fork出新的worker进程。

安装和编译

Swoole类似于node.js,但swoole内部是多线程的,只需要修改配置参数,即可调节线程、进程数量。Swoole使用简单方便,用户无须关心内部实现,只需要设置启动参数、编写PHP回调函数即可。

 

swoole扩展安装的方法和其他PHP扩展相同,使用phpize来进行编译配置。只需要phpize、./configure、make && make install 三步即可完成编译安装。可以使用dl动态加载,也可修改php.ini配置自动加载。

 

环境依赖

  • OS: Only Linux version 2.6.22 or higher
  • PHP: version 5.2 or higher
  • require pthread epoll and eventfd
  • gcc: version 4.0 or higher

代码实例

<?php
$serv = swoole_server_create("127.0.0.1", 9500, 1);
swoole_server_set($serv, array(
    'timeout'=>2.5,
    'poll_thread_num'=>1,
    'writer_num'=>2,
    'worker_num'=>2,
    'backlog'=>128,
    'max_request' => 1000,
));
function my_onStart($serv)
{
    echo "Server:start\n";
}

function my_onShutdown($serv)
{
    echo "Server:onShutdown(\n";
}

function my_onClose($serv,$fd,$from_id)
{
  echo "Client:Close. fd=$fd|from_id=$from_id\n";
}

function my_onConnect($serv,$fd,$from_id)
{
    echo "Client:Connect. fd=$fd|from_id=$from_id\n";
}

function my_onReceive($serv,$fd,$from_id,$data)
{
    echo "Client:Data. fd=$fd|from_id=$from_id|data=$data\n";
    swoole_server_send($serv, $fd, "Server:$data");
}

swoole_server_handler($serv, 'onStart', 'my_onStart');
swoole_server_handler($serv, 'onConnect', 'my_onConnect');
swoole_server_handler($serv, 'onReceive', 'my_onReceive');
swoole_server_handler($serv, 'onClose', 'my_onClose');
swoole_server_handler($serv, 'onShutdown', 'my_onShutdown');

swoole_server_start($serv);
?>

 

php server.php
telnet 127.0.0.1 9500
hello
server: hello

 

项目地址

https://github.com/matyhtf/php_swoole

 

2
0
评论 共 1 条 请登录后发表评论
1 楼 axel 2012-10-30 15:04
看来感受到了node.js的压力。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 基于协程和swoole驱动的高性能PHP框架TSF.zip

    Tencent Server Framework 是快速服务器部署框架,PHP 现在可以像 Golang 一样用协程实现高并发服务器,同时支持同步阻塞,异步非阻塞回调,协程这 3 种 IO 模型。 主要特性: 基于 PHP,相比 C 开发更高效 ...

  • PHP的高性能Server框架Swoole发布C扩展版

    PHP的高性能Server框架Swoole已发布C扩展版本。Swoole使用纯C编写,以PHP扩展的方式提供了一个强大的异步并行Server框架。基于linux epoll+eventfd,不依赖libevent等第三方库,在Linux下可直接编译。支持3种模式...

  • 高性能PHP web框架Swoole

    Swoole是一个中国人自己开发的高性能web框架,相比传统的apache fpm收发请求方式,它的性能可以去到更高,它可以替代php-fpm,直接运行在nginx,apache这些底层的web server上,接管了所有http 请求,相对很多很繁重的...

  • php swoole 游戏框架,Swoole 高性能php框架

    这篇文章主要介绍了关于Swoole 高性能php框架,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下之前学习过了, nodejs ,性能强大。今年的目标是深入workman,和运用swool 。之前用workman去处理聊天...

  • 高性能php开发框架,PHP高性能框架选择

    高负载不是一个语言的问题,这个讨论的范围已经超出了PHP:1、如果同一类型的的框架(指都是为了解决某类问题,比如CMS,论坛等乖)是比较成熟的,那么在生产环境,大家的差异不会差不那里去;2、框架的最主要目的不是...

  • 高性能php开发框架,高性能 PHP 开发框架 Agile Swoole

    原标题:高性能 PHP 开发框架 Agile Swoole关于Agile Swoole一个高性能的PHP开发框架(swoole)特性1.支持MVC2.支持自定义常驻进程3.支持多种任务模式4.路由自定义事件5.简单易用orm[可二次开发,实现接口,自动注入...

  • 火箭:高性能的PHP API框架

    FastD 是一个支持 Swoole 的轻量级 Web 开发框架,可适用于对性能有要求的 API 场景,并且灵活的扩展性可以让开发者们更容易地建造自己的服务 (基于Swoole), 要求 PHP &gt;= 5.6 ext-curl ext-pdo ext-swoole 文档 ...

  • 基于swoole实现的自带httpserver的web开发框架

    基于swoole实现的自带http server的web开发框架,用于开发高性能的api应用,例如app接口服务端等

  • swoole php 手册,Light-php 基于swoole的高性能php框架

    Light-php是一个基于swoole的高性能php框架,轻量的封装和易用性,使它在中小型高性能项目中有着出色的表现。文档目录环境要求依赖说明&gt;= 7.2 推荐7.2&gt;= 4.2.9 从2.0.12开始不再支持PHP5 推荐4.2.9+大部分的...

  • 闪烁:PHP中的高性能Web框架和应用程序服务器

    Blink-PHP中的高性能Web框架和应用服务器 Blink是一个用于构建长期运行的高性能服务的微型Web框架,其设计受到Yii2和Laravel的极大启发。 Blink旨在提供最富表现力和优雅的API,并尝试使Web开发的体验尽可能愉快。 ...

  • php异步rpc框架,推荐一个基于swoole开发高性能rpc框架

    简介swrpc是一个基于swoole开发的高性能rpc包,swrpc提供了注册发现,链路追踪,中间件等等功能,可以很容易集成到第三方框架,如laravel,yii等等。https://github.com/wuzhc/swrpc功能支持多进程模式或协程模式...

  • 有关php swool,码云推荐 | 高性能 PHP 开发框架 Agile Swoole

    关于Agile Swoole一个高性能的 PHP 开发框架(swoole)特性1.支持MVC2.支持自定义常驻进程3.支持多种任务模式4.路由自定义事件5.简单易用orm[可二次开发,实现接口,自动注入即可]6.自动协程(Coroutine,假如你的...

  • imp::rocket:一个简单,轻量级和高性能PHP协程框架

    :rocket: 一个简单,轻巧和高性能PHP协程框架。 基准测试 基准测试性能在Java,Go,Python和其他语言的Web框架中排名领先。 参见 支持功能 HTTP服务器 WebSocket服务器 TCP服务器 UDP服务器 MQTT服务器/ 文献...

  • swoole 连接池php fpm,one: 一个极简高性能php框架,支持[swoole | php-fpm ]环境

    One - 一个极简高性能php框架,支持[swoole | php-fpm ]环境简单 - 让你重点关心用one做什么,而不是怎么用one灵活 - 各个组件松耦合,可以灵活搭配使用,使用方法保持一致原生sql可以和模型关系with搭配使用,关系...

  • queryphp::fire:高性能PHP渐进框架

    QueryPHP是一个现代的,高性能PHP渐进框架,以提供稳定可靠的高质量企业级框架作为其历史使命。 使用LEVEL做得更好 网站: : 中国镜网: : 文档: : 产品特点 准备生产 高品质代码和高覆盖率 如何安装 ...

  • manaphp:ManaPHP框架:Swoole + FPM

    常驻内存模式:与传统PHP框架不同,不需要WEB服务器(Apache / PHP-FPM),框架自带基于Swoole\Http\Server开发的高性能HTTP服务器。传统PHP应用程序中脚本结束后,所有的对象在请求后都装销毁,而ManaPHP不同,框架...

  • 软擎是基于 Php 7.2+ 和 Swoole 4.4+ 的高性能、简单易用的开发框架。.zip

    软擎是基于 Php 7.2+ 和 Swoole 4.4+ 的高性能、简单易用的开发框架。支持同时在 Swoole Server 和 php-fpm 两种模式下运行。内置了 Http (Swoole, Fpm),Tcp,WebSocket,Process,Crontab服务。….zip 软件开发...

  • php websocket性能,使用php的swoole框架,实现高性能长连接websocket

    [刚学习如何使用netty,这是netty框架中的一个示例,你可以在netty的解压后文件夹路径netty-3.5.9.Final\src\main\java\org\jboss\netty\example\http\websocketx\server下一.服务器端:1. 编辑server.php文件内容...

  • php协程实现mysql异步_Swoole 高性能高并发 PHP 协程框架 - 文章

    Swoole 使 PHP 开发人员可以编写高性能高并发的 TCP、UDP、Unix Socket、HTTP、 WebSocket 等服务,让 PHP 不再局限于 Web 领域。Swoole4 协程的成熟将 PHP 带入了前所未有的时期, 为性能的提升提供了独一无二的...

  • php网络相关的扩展,PHP的异步并行网络扩展swoole

    Swoole扩展是基于epoll高性能事件轮询,并且是多线程的,性能非常好。Swoole除了提供网络Server/Client的功能之外,还提供了Task异步任务管理器,可以使你的程序中某些处理慢的函数异步去执行。本文说下如何使用...

Global site tag (gtag.js) - Google Analytics