首页 » PHP教程 » phpgearman技巧_php运用gearman

phpgearman技巧_php运用gearman

访客 2024-10-30 0

扫一扫用手机浏览

文章目录 [+]

Gearman 的安装和利用

官网地址:http://gearman.org/

先容

Gearman是一个用来把事情委派给其他机器、分布式的调用更适宜做某项事情的机器、并发的做某项事情在多个调用间做负载均衡、或用来在调用其它措辞的函数的系统。

phpgearman技巧_php运用gearman

Gearman供应了一种通用的程序框架来将你的任务分发到不同的机器或者不同的进程当中。
它供应了你进行并行事情的能力、负载均衡处理的能力,以及在不同程序措辞之间沟通的能力。
Gearman能够运用的领域非常广泛,从高可用的网站到数据库的复制任务。
总之,Gearman便是卖力分发处理的中枢系统,它的优点包括:

phpgearman技巧_php运用gearman
(图片来自网络侵删)

开源:Gearman免费并且开源而且有一个非常生动的开源社区,如果你想来做一些贡献,请点击 。

多措辞支持:Gearman支持的措辞种类非常丰富。
让我们能够用一种措辞来编写Worker程序,但是用其余一种措辞编写Client程序。

灵巧:不必拘泥于固定的形式。
您可以采取你希望的任何形式,例如 Map/Reduce。

快速:Gearman的协议非常大略,并且有一个用C措辞实现的,经由优化的做事器,担保运用的负载在非常低的水平。

可植入:由于Gearman非常小巧、灵巧。
因此您可以将他置入到现有的任何系统中。

没有单点:Gearman不仅可以帮助扩展系统,同样可以避免系统的失落败。

运行过程:

一个Gearman要求的处理过程涉及三个角色:Client -> Job -> Worker。

Client:要求的发起者,可以是 C,PHP,Perl,MySQL UDF 等等。

Job:要求的调度者,用来卖力折衷把 Client 发出的要求转发给得当的 Work。

Worker:要求的处理者,可以是 C,PHP,Perl 等等。

由于 Client,Worker 并不限定用一样的措辞,以是有利于多措辞多系统之间的集成。
乃至我们通过增加更多的 Worker,可以很方便的实现运用程序的分布式负载均衡架构。

Gearman的事情事理:

利用Gearman的运用常日有三部分组成:一个Client、一个Worker、一个 任务做事器。
Client的浸染是提出一个 Job 任务 交给 Job Server 任务做事器。
Job Server 会去探求一个 得当的 Worker 来完成这项任务。
Worker 实行由 Client 发送过来的 Job,并且将结果通过 Job Server 返回给 Client。
Gearman 供应了 Client 和 Worker 的 API,利用这些API 运用可以同 Gearman Job Server来进行通信。
Gearman 内部 Client 和 Worker 之间的通信都是通过 TCP 连接来进行的。
事情的流程如下图所示:

Paste_Image.png

Gearman的用途:

Gearman首先供应了一个多措辞通讯的接口,当然还有比这个更大略有效的办法。
Gearman可以将事情的负载分担到不同的机器中,如下图所示:

Paste_Image.png

Job Server 可以开启多个实例,这样在个中一个发生故障的时候,可以 Failover 到其他的机器上。
同时 Worker 也可以是多个实例进走运行,由于当前的做事器很多都是多核的。

安装yum 安装

安装gearmand

$ sudo yum install gearmand

安装php扩展

$ sudo yum install --enablerepo=remi --enablerepo=remi-php56 php-pecl-gearman

查看扩展是否安装成功

$ php -m | grep gearmangearman源码安装

安装gearmand

$ wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz$ tar xvzf gearmand-1.1.12.tar.gz$ cd gearmand-1.1.12$ ./configure$ make$ sudo make install

安装php扩展

$ wget http://pecl.php.net/get/gearman-1.1.2.tgz$ tar xvzf gearman-1.1.2.tgz$ cd gearman-1.1.2$ phpize$ ./configure$ make$ make install

手动添加配置

$ php --ini //Loaded Configuration File: /etc/php/php.ini$ vi /etc/php/php.ini ...extension = gearman.so利用干系代码:

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){ return "你要求的数据:" . $job->workload() . " 要求韶光:" . date('Y-m-d H:i:s'); //return ucwords(strtolower($job->workload())); }?>

client.php

<?php $client= new GearmanClient(); $client->addServer("127.0.0.1", 4730); print $client->do("title", json_encode( [ 'username'=>'jack', 'email'=>'jack@foxmail.com', ] )); print "\n";?>测试:

启动做事

$ sudo gearmand -d

启动worker

$ php worker.php &[1] 15135

启动client

$ php client.php 你要求的数据:{"username":"jack","email":"jack@foxmail.com"} 要求韶光:2017-07-10 23:25:30

参考:https://segmentfault.com/a/1190000000494087https://www.ibm.com/developerworks/cn/opensource/os-php-gearman/http://gearman.org/getting-started/#clienthttp://php.net/manual/zh/book.gearman.php

标签:

相关文章

执业药师试卷代码解码药师职业发展之路

执业药师在药品质量管理、用药安全等方面发挥着越来越重要的作用。而执业药师考试,作为进入药师行业的重要门槛,其试卷代码更是成为了药师...

PHP教程 2025-02-18 阅读1 评论0

心灵代码主题曲唤醒灵魂深处的共鸣

音乐,作为一种独特的艺术形式,自古以来就承载着人类情感的表达与传递。心灵代码主题曲,以其独特的旋律和歌词,唤醒了无数人的灵魂深处,...

PHP教程 2025-02-18 阅读1 评论0

探寻福建各市车牌代码背后的文化内涵

福建省,地处我国东南沿海,拥有悠久的历史和丰富的文化底蕴。在这片充满魅力的土地上,诞生了许多具有代表性的城市,每个城市都有自己独特...

PHP教程 2025-02-18 阅读1 评论0

探寻河北唐山历史与现代交融的城市之光

河北省唐山市,一座地处渤海之滨,拥有悠久历史和独特文化的城市。这里既是古丝绸之路的起点,也是中国近代工业的发源地。如今,唐山正以崭...

PHP教程 2025-02-18 阅读1 评论0