Gearman安裝與使用,分布式訊息佇列

2021-09-25 10:17:18 字數 1566 閱讀 5722

1 介紹:

gearman是乙個用來把工作委派給其他機器、分布式的呼叫更適合做某項工作的機器、併發的做某項工作在多個呼叫間做負載均衡、或用來在呼叫其它語言的函式的系統。

2 組成:

3執行過程

4 gearmand安裝

5 gearmand使用

5.1建立worker

<?php

$worker= new gearmanworker();

$worker->addserver('192.168.142.130 ','4730 ');

$worker->addfunction("sendmail","my_sendmail_function");

while($worker->work());

function my_sendmail_function($job)

5.2 建立乙個client

建立乙個client.php。do()方法是阻塞模式,必須等待worker端返回結果,程式才能停止。

<?php

$client=new gearmanclient();//初始化乙個client

$client->addserver('192.168.142.130', '4730');

$job=array(); //定義初始化乙個job陣列,來存放資料,把client的請求傳送出去

$job['from']='clevercode'; //1 把存放的資料存放到陣列中

$job['to']='gearman'; //2

$job['subject']='hello gearman'; //3

$job['content']='hello gearman:this is from gearmanclient'; //4

$job=serialize($job); // 序列化成字串

//等到worker端返回結果,才會結束。

$ret=$clent->do("sendmail",$job);

?>

使用php提供的序列化函式serialize()

j ob

seri

aliz

e=se

rial

ize(

job_serialize = serialize(

jobs​e

rial

ize=

seri

aliz

e(job); // 序列化成字串

接下來就是將這個字串存入資料庫即可,當我們將資料讀取出來時,再將這個字串進行反串行為陣列即可

j ob

rest

ore=

unse

rial

ize(

job_restore = unserialize(

jobr​e

stor

e=un

seri

aliz

e(job_serialize); // 反序列化為陣列

分布式的任務分發框架 Gearman

官方文件 安裝方法和示例都有,可以詳細看一下。gearman是乙個分發任務的程式框架,可以用在各種場合,與hadoop相比,gearman更偏向於任務分發功能。它的任務分布非常簡單,簡單得可以只需要用指令碼即可完成。gearman最初用於livejournal的resize功能,由於resize需要...

嘗試用Gearman實現分布式處理(PHP)

本文需要你已對gearman有個大致了解,如果不知該東東是何物,請參考之前一篇 日誌 gearman 分布式遠端過程處理框架 http hi.baidu.com thinkinginlamp blog item ff49972b9e7378f3e6cd40aa.html 學學gearman http...

使用Docker安裝FastDFS分布式檔案系統

sudo docker image pull delron fastdfs也可以直接使用映象備份檔案 sudo docker load i 檔案路徑 fastdfs docker.tarsudo docker run dti network host name tracker v var fdfs ...