hg888皇冠手机登录

Gearman使用

一月 26th, 2020  |  www.hg888.com

Gearman 是什么?

Gearman 的设置和行使

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

Gearman是二个用来把专业委派给任何机器、布满式的调用更符合做某项专门的学业的机器、并发的做某项职业在多个调用间做负载均衡、或用来在调用此外语言的函数的种类。

介绍

Gearman是三个用来把工作委派给别的机器、布满式的调用更相符做某项职业的机械、并发的做某项工作在两个调用间做负载均衡、或用来在调用此外语言的函数的系统。

Gearman提供了后生可畏种通用的次序框架来将您的天职务发到不相同的机械只怕分歧的经过此中。它提供了你举行互相专门的学问的力量、负载均衡管理的手艺,以至在分歧程序语言之间联络的力量。Gearman能够采纳的小圈子十二分分布,从高可用的网站到数据库的复制职责。总之,Gearman便是担当分发管理的中枢系统,它的亮点蕴含:

开源:Gearman免费而且开源何况有壹个可怜活跃的开源社区,如果您想来做一些进献,请点击

多语言支持:Gearman辅助的言语体系极度足够。让大家能够用一种语言来编排Worker程序,可是用别的意气风发种语言编写Client程序。

灵活:不必拘泥于固定的格局。您能够动用你愿意的别样款式,举个例子Map/Reduce。

赶快:Gearman的磋商特别轻松,况且有四个用C语言达成的,经过优化的服务器,保障应用的负荷在非常的低的档次。

可植入:因为Gearman超级小巧、灵活。由此你能够将他置入到存活的此外系统中。

一贯不单点:Gearman不仅可以够扶植扩充系统,相近能够制止系统的败北。

Gearman 职业规律

运营进程:

叁个Gearman央求的管理进程涉及多少个剧中人物:Client -> Job -> Worker。

Client:伏乞的发起者,能够是 C,PHP,Perl,MySQL UDF 等等。

Job:央求的调整者,用来担负和谐把 Client 发出的伸手转载给合适的 Work。

Worker:央浼的处理者,能够是 C,PHP,Perl 等等。

因为 Client,Worker
并不约束用相通的言语,所以有助于多语言多系统里头的合生龙活虎。
竟然大家经过扩充越多的
Worker,能够很便利的落到实处应用程序的遍及式负载均衡布局。

  • Client:创造一个Job。
  • Server:找到适当的Worker,把 Job 交给 Worker。
  • Worker:执行Job。

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 连接来开展的。职业的流水生产线如下图所示:

图片 1

Paste_Image.png

图片 2Gearman
工作原理

Gearman的用处:

Gearman首先提供了贰个多语言通信的接口,当然还会有比这几个更简明有效的办法。Gearman能够将专门的工作的载重分担到区别的机器中,如下图所示:

图片 3

Paste_Image.png

Job Server 能够敞开多少个实例,那样在里头二个发出故障的时候,可以 Failover
到任何的机器上。同期 Worker
也能够是多少个实例举行运转,因为脚下的服务器非常多都以多核的。

Web 中常用的景色。

安装

  • 剪裁图片,生成缩略图。
  • 文本分发(针对客户上传的文本,进行多台服务器分发)。
  • 摄像转码(对上传的录像,进行转码存款和储蓄)。
  • 系统报告急察方(当系统出现难点的时候,第不经常间通告相关人)。

yum 安装

安装gearmand

$ sudo yum install  gearmand

安装php扩展

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

查看扩展是还是不是安装成功

$ php -m | grep gearman
gearman

那篇作品主要教师 系统报告急方 场景

源码安装

安装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/1190000000494087
https://www.ibm.com/developerworks/cn/opensource/os-php-gearman/
http://gearman.org/getting-started/\#client
http://php.net/manual/zh/book.gearman.php

由此,使用 Gearman 达成短信,邮件的异步发送。

Gearman 安装的二种方法

  • 格局黄金年代:官方网站推荐安装形式

    官方网址地址:

    yum install gearmand
    
  • 方法二:自定义安装

  • 安装libevent:

    wget get https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gztar zxvf libevent-2.0.22-stable.tar.gz./configure --prefix=/usrmake && make install
    
  • 安装Gearman server and library:

    wget get https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gztar zxvf gearmand-1.1.12.tar.gzcd gearmand-1.1.12./configure如果报错:configure: error: could not find boostyum install -y boost boost-devel如果报错:configure: error: could not find gperfyum install gperf如果报错:configure: error: Unable to find libuuidyum install libuuid-develmake && make install安装成功后,执行 gearmand -V 查询版本号。gearmand -d 开启服务。温馨提示:仅供参考,遇到不可预测的问题,请进行Google。
    
  • 安装Gearman PHP extension:

    wget get http://pecl.php.net/get/gearman-1.1.2.tgztar zxvf gearman-1.1.2.tgzcd gearman-1.1.2/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-config --with-gearman如果报错:configure: error: Please install libgearmanyum install -y libgearman-devel.x86_64
    

案例

  • 拉开服务

标签:, , , , , , ,

Your Comments

近期评论

    功能


    网站地图xml地图