1 介绍:
Gearman是一个用来把工作委派给其他机器、分布式的调用更适合做某项工作的机器、并发的做某项工作在多个调用间做负载均衡、或用来在调用其它语言的函数的系统。
2 组成:

  • Gearman client:提供gearman client API给应用程序调用,它是请求的发起者。
  • Gearman job server:将客户端的请求分发到各个gearman worker的调度者,相当于中央控制器,但它不处理具体业务逻辑。
  • Gearman worker:提供gearman worker API给应用程序调用,具体负责客户端的请求,并将处理结果返回给客户端。

3运行过程

  • 一个Gearman请求的处理过程涉及三个角色:Client -> Job -> Worker。
  • Client:请求的发起者
  • Job:请求的调度者,用来负责协调把 Client 发出的请求转发给合适的 Work
  • Worker:请求的处理者

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){//接受数据$tmp=$job->workload();$receiverArr=unserialize($tmp);      // 反序列化为数组$from=$receiveArr['from'];  //1$to=$receiveArr['to'];         //2$subject=$receiveArr['subject'];    //3$content=$recriver['content'];     //4//
//发送邮件
return $subject.' sendmail OK';}

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()
jobserialize=serialize(job_serialize = serialize(jobs​erialize=serialize(job); // 序列化成字符串

接下来就是将这个字符串存入数据库即可,当我们将数据读取出来时,再将这个字符串进行反序列为数组即可
jobrestore=unserialize(job_restore = unserialize(jobr​estore=unserialize(job_serialize); // 反序列化为数组

Gearman安装与使用,分布式消息队列相关推荐

  1. 分布式消息队列RocketMQ(一)安装与启动

    分布式消息队列RocketMQ 一.RocketMQ简介 RocketMQ(火箭MQ) 出自于阿里,后开源给apache成为apache的顶级开源项目之一,顶住了淘宝10年的 双11压力 是电商产品的 ...

  2. 分布式消息队列 — RabbitMQ(3)

    目录 文章目录 目录 前文列表 前言 通道 Channel 一个基本的生产者/消费者实现 消费者 生产者 运行结果 应用预取计数 应用 ACK 机制 最后 前文列表 快速入门分布式消息队列之 Rabb ...

  3. OSSIM中分布式消息队列应用

     OSSIM中分布式消息队列应用 1. 消息队列处理 企业日志数量正在以指数级形式高速增长,日志数据的具有海量.多样.异构等特点,基于传统的单一节点混合式安装的OSSIM平台(指OSSIM 4.4及以 ...

  4. 分布式消息队列RocketMQ 快速入门

    分布式消息队列RocketMQ 一 RocketMQ概述 概述 1.MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件,是一套提供了消息生产.存储.消费全过程API的软件系统. ...

  5. 分布式服务(RPC)+分布式消息队列(MQ)面试题精选

    分布式系统(distributed system)是建立在网络之上的软件系统.正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性.因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作 ...

  6. [.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现...

    原文:[.NET领域驱动设计实战系列]专题八:DDD案例:网上书店分布式消息队列和分布式缓存的实现 一.引言 在上一专题中,商家发货和用户确认收货功能引入了消息队列来实现的,引入消息队列的好处可以保证 ...

  7. 深入理解分布式消息队列

    一.消息队列的演进 分布式消息队列中间件是是大型分布式系统中常见的中间件.消息队列主要解决应用耦合.异步消息.流量削锋等问题,具有高性能.高可用.可伸缩和最终一致性等特点.消息队列已经逐渐成为企业应用 ...

  8. 分布式消息队列 Kafka

    分布式消息队列 Kafka 2016-02-25 杜亦舒 Kafka是一个高吞吐量的.分布式的消息系统,由Linkedin开发,开发语言为scala 具有高吞吐.可扩展.分布式等特点 适用场景 活动数 ...

  9. Kafka 分布式消息队列介绍

    Kafka 分布式消息队列 类似产品有JBoss.MQ 一.由Linkedln 开源,使用scala开发,有如下几个特点: (1)高吞吐 (2)分布式 (3)支持多语言客户端 (C++.Java) 二 ...

  10. rockemq 发送延迟消息_58分布式消息队列WMB设计与实践

    背景 为了能够承载58业务的快速扩展及海量的用户访问,分布式系统已经成为公司一种主流架构设计.而消息队列是大型分布式系统中不可或缺的通信桥梁,在分布式系统解耦.异步通信.事件通知.流量削峰等业务场景中 ...

最新文章

  1. Windows Tensorflow GPU安装
  2. 模型可解释性-贝叶斯方法
  3. 操作云数据库出现Access denied for user ‘common_1‘@‘%‘ to database ‘seata_storage‘
  4. opencsv : 解析CSV
  5. 13 | 线性排序:如何根据年龄给100万用户数据排序?
  6. docker 容器安装conposer_docker和php:将依赖项(composer)放入容器中
  7. Mac下安装caffe(cpu-only)
  8. hdu 2883 kebab 网络流
  9. java.lang.IllegalStateException: UT010019: Response already commited
  10. “心脏出血”后,OpenSSL 起死回生靠什么?
  11. 设置谷歌浏览器黑色主题
  12. 新网域名转出及阿里云域名转入
  13. jquery省市县三级导航栏
  14. python求15 17 23 65 97的因数_Python练习题
  15. jUI项目最初的名字为DWZ,这个名字是怎么来的?后来为什么又改为jUI?
  16. R语言入门(第一篇)--R软件基本操作
  17. 团队协作工具,如何加强团队协作能力
  18. AM中使用PML语言标注船体结构
  19. 我的河海大学计算机考研经验之谈
  20. ADP的人力资源外包方法论

热门文章

  1. 意甲体育看利来娱乐:萨勒尼塔纳全身而退,萨索洛捍卫主场荣誉
  2. hcnp RIP思维导图
  3. Python 散点图线性拟合_一文教你全面掌握用Python实现线性回归
  4. elasticsearch通过顶部多索引,实现联合查询
  5. 关于APP分发,要取得更好效果需要注意的
  6. 虹科新闻 | 虹科成为Vuzix亚太地区合作伙伴以及大中华区独家代理商
  7. 扇区、载频、小区、频点、NCGI、PLMN
  8. cesium中轨道六根数的参数命名
  9. python对excel数据统计_python读取excel数据做分类统计
  10. Flex Bison 开始