Deprecated
: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in
/www/wwwroot/testblog.58heshihu.com/var/Widget/Archive.php
on line
1057
首页
关于
Search
1
给你10个市场数据调研报告的免费下载网站!以后竞品数据就从这里找!
182 阅读
2
php接口优化 使用curl_multi_init批量请求
144 阅读
3
《从菜鸟到大师之路 ElasticSearch 篇》
107 阅读
4
2024年备考系统架构设计师
104 阅读
5
PHP 文件I/O
92 阅读
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
登录
Search
标签搜索
php函数
php语法
性能优化
安全
错误和异常处理
问题
vue
Composer
Session
缓存
框架
Swoole
api
并发
异步
正则表达式
php-fpm
mysql 索引
开发规范
协程
dafenqi
累计撰写
786
篇文章
累计收到
28
条评论
首页
栏目
php
thinkphp
laravel
工具
开源
mysql
数据结构
总结
思维逻辑
令人感动的创富故事
读书笔记
前端
vue
js
css
书籍
开源之旅
架构
消息队列
docker
教程
代码片段
副业
redis
服务器
nginx
linux
科普
java
c
ElasticSearch
测试
php进阶
php基础
页面
关于
搜索到
1
篇与
的结果
2023-08-08
用Gearman实现PHP的分布式处理
用Gearman实现PHP的分布式处理本机环境:Debian6 .0+ PHP5.3.3-7+squeeze1先安装任务分发的Job端安装Gearman server and library最新0.20版:wget http://launchpad.net/gearmand/trunk/0.20/+download/gearmand-0.20.tar.gztar zxf gearmand-0.20.tar.gzcd gearmand-0.20./configuresudo makesudo make install中间可能会遇到些问题:在./configure的时候,可能会出现缺少libraries的情况:checking for libevent… noconfigure: error: cannot find the flags to link with Boost program_optionsconfigure: error: libevent is required for gearmand. On Debian this can be found in libevent-dev. On RedHat this can be found in libevent-devel.可能系统缺少libboost、libevent和uuid等等,需要依次安装:sudo apt-get install libboost-program-options-devsudo apt-get install libevent-devsudo apt-get install uuid-dev安装完成后再重新配置安装,安装完成后执行sudo ldconfig因为本试验Client和Worker端都由PHP来实现,所以需要安装php的gearman扩展安装Gearman PHP extension:wget http://pecl.php.net/get/gearman-0.7.0.tgztar zxf gearman-0.7.0.tgzcd gearman-0.7.0phpize./configuresudo makesudo make install中间可能遇到的问题:找不到phpize命令,phpize在php开发包中,所以要先安装php5-devsudo apt-get install php5-dev安装完后,就可以在源码目录中执行phpize生成相关安装配置信息,接着执行后面的./configure等make install后,它告诉你一个目录,生成的gearman.so就在那里。根据需要考到相应PHP的扩展目录里(因为我直接用系统默认安装的php,它自动生成就在扩展中)接下来修改php.ini以使php加载该模块:php –ini看下php.ini在哪里,sudo vim 修改之,在其中加入extension = “gearman.so”然后,开始编写client和worker端client.php<?php$client= new GearmanClient();$client->addServer(“127.0.0.1″, 4730);print $client->do(“title”, “Linvo”);print “\n”;?>worker.php<?php$worker= new GearmanWorker();$worker->addServer(“127.0.0.1″, 4730);$worker->addFunction(“title”, “title_function”);while ($worker->work());function title_function($job){$str = $job->workload();return strlen($str);}?>准备工作已经完毕,试验开始1、启动jobgearmand -d2、启动workerphp -c /etc/php5/apache2/php.ini worker.php3、启动client(新开终端中打开)php -c /etc/php5/apache2/php.ini client.php屏幕显示字符串的长度 “5”这里,有几点需要说明一下:1、这里直接用php cli方式运行,添加-c参数是为了加载php.ini配置文件,以加载gearman扩展2、worker应该做成守护进程(CLI模式),可以开启多个,这样client发起的任务就会分发到各个worker分别来执行(自动负载均衡)这个例子由于太过简单,即使开启多个worker也无法看出效果,不过可以通过终止其中一个,可以看出系统自动切换到其他worker继续正常执行3、同理,client也是可以开启多个的(模型请参考之前的那边日志)4、同时,job也可以开启多个,以避免单点故障
2023年08月08日
8 阅读
0 评论
0 点赞