- 浏览: 82789 次
- 性别:
- 来自: 北京
最新评论
-
一能一世界:
换个说法比较准确:国人就是喜欢钱
关于PHP和C&Java等编程语言 -
philix:
想法很好, 但实现起来肯定不会容易.我也是开发PHP多年,常常 ...
用PHP来实现PHP的应用服务器 -
liguangyi:
长时间运行的PHP程序,其内存管理是个大问题,占用的内存不会自 ...
用PHP来实现PHP的应用服务器 -
输入法:
支持!
用PHP来实现PHP的应用服务器 -
matyhtf:
achun 写道这样想过,没敢做,佩服你感谢你的支持!目前已经 ...
用PHP来实现PHP的应用服务器
文章列表
[置顶] swoole的进程模型架构
- 博客分类:
- PHP
swoole的强大之处就在与其进程模型的设计,既解决了异步问题,又解决了并行。
主线程MainReactor
swoole启动后主线程会负责监听server socket,如果有新的连接accept,主线程会评估每个Reactor线程的连接数量。将此连接分配给连接数最少的reactor线程。这样的好处是
每个reactor线程持有的连接数是非常均衡的,没有单个线程负载过高的问题
解决了惊群问题,尤其是拥有多个listen socket时,节约了线程唤醒和切换的开销
主线程内还接管了所有信号signal的处理,使Reactor线程运行中可以不被信号打断。
管理进程Ma ...
Swoole是PHP的异步并行扩展,有点像Node.js,但swoole既支持同步又支持异步,比node更强大。Swoole扩展是基于epoll高性能事件轮询,并且是多线程的,性能非常好。
Swoole除了提供网络Server/Client的功能之外,还提供了Task异步任务 ...
客户端socket连接到ProxyServer后,创建一个socket连接到后端Server。并监听后端Server的回包。 客户端向ProxyServer发送请求包,proxy服务器会透明地将此包发往后端Server。
当后端Server返回包时,找到对应的客户端socket,向此socket发送回应的数据包。
此程序将swoole扩展提供的Server和Client结合在一起使用, ProxyServer对客户端连接来说是服务器端,但对backend服务器来说是客户端。
所有网络IO都是基于epoll事件循环,全异步非阻塞的。性能非常高。 长连接可以达到 10万qps的 ...
看到iteye上的评论,cer/javaer貌似都很轻视PHP。C/C++,java,Python,PHP还有Go这些我都用过,各有所长,没有高度贵贱。国人总喜欢搞出几个阶级。
第一代的Web技术,是基于HTML的静态页面,用于发布静态的内容。程序员们就想出来通过程序来生成HTML的技术,将内容保存于数据库中,然后通过SQl和模板引擎等技术去生成HTML页面。
第二代的Web,开始大量使用前端程序,使用Ajax等方式动态主动触发事件,从服务端拉取数据,并且增加了前端的程序逻辑。从而实现了Web页面上的交互。
不过,随着技术的发展,前两种架构已经远远不能满足信息交互需求了。通过采用Server PUSH的架构,服务器端可以主动向Web推送数据,从而达到实时交互,这一定会是未来的主流。比如A,B,C3人同时在一个页面上浏览,A对B进行了评论,并且提到了C。传统的架 ...
1、前端程序员
Javascript是他们的拿手语言,每天跟浏览器打交道,搞各种特效。用Ajax请求服务器获得数据,然后操作各种DOM,CSS。他们最大的苦恼是:IE什么时候才能消亡?
2、Web程序员
整天跟Apache或其他Web服务器打交道,操纵URL、GET/POST,存取数据库,搞模板HTML。 实现 一些功能业务逻辑。他们最大的苦恼是:尼玛各种功能需求,做来做去都差不多。
3、后端程序员
貌似比Web程序员高级。搞各种存储,框架,SDK,Cache,接口。也提供接口给别人用。有时候也会搞运维,DBA之类的工作,也研究系统架构方面的东西。此类程序员基本上都是经验丰富的程 ...
利用Swoole框架中提供的WebService类和RestClient类,可以很方便地实现Webservice和远程接口调用。
可以用在,网站对外提供API,或者大型网站系统内部不同模块之间接口调用。
代码简洁易懂,支持远程函数调用,面向对象的方法、属性编程
服务器端:
<?php
require '../../config.php';
require LIBPATH.'/system/WebService.php';
$web = new WebService;
//设定可远程调用的客户端IP
$web->access_ip[] = '127 ...
更新于2013年7月17日:本项目已经有较大进展,目前使用C扩展+PHP代码来构建了完整的应用服务器,有完善的worker进程管理机制、连接池、自动重载代码、热部署等功能。QPS可轻松达到9000以上。同等的LAMP搭配Yii等PHP框架仅能达到600qps。
项目地址:https://github.com/matyhtf/swoole_web_framework
PHP 和 Java 比最大的优势是什么?
简单高效, PHP 在请求完成之后会释放所有资源和内存,无须担心内存泄漏。代码的质量无论高低一样运行的很流畅。
但同时这也是 PHP 致命的缺点。一旦请求数量上升,并发很高的 ...
本文章于2013年11月修改。
swoole已使用C重写作为PHP扩展来运行。项目地址:https://github.com/matyhtf/swoole
swoole提供了PHP的高性能Server,异步IO,AsyncMySQL等特性。
原PHP代码框架迁移至https://github.com/matyhtf/swoole_framework。保留原有代码和web框架。
--------------------------------------------------------------------------------------------------
...