最大的不同是 gearman 不是数据库。我知道你知道这一点,但我想我会重申一下。Gearman 是一个独立的实体,必须作为一个守护进程独立运行。
Gearman 是一个分布式工作队列和工作器,而 MySQL 或 MongoDB 等数据库没有真正内置的分布式工作队列器和工作器。
Gearman 有一个分布式作业注册和复制系统,这是普通数据库所没有的。它还可以(如我所说)在一个大型集群中均匀地分配工作人员和作业(想想 AWS 现场实例上的集群处理)。
当不使用 Gearman 时,您可能会在尝试在自己的代码中实现所有 Gearman 所做的事情时头疼,尤其是在 PHP 中,它在守护程序模式下运行非常糟糕。
因此,使用 Gearman,您可以获得一个完整的社区开发和审查的分布式工作队列和工作人员,而使用您自己的代码......我不确定您会得到什么,因为我不确定您输入工作队列和工作人员的内容。
编辑
Gearman 在一个简单解决方案上的用例将是:
- 分布式视频编码器
- 方程的科学集群计算
- 计算硬件的通用池化以创建堆栈以处理其他任务
真正的 Gearman 在分布式环境中大放异彩。它就像分布式作业队列和工作人员的 MongoDB。它只是缩放。
话虽如此,如果您正在运行一个具有非大规模分布式工作集群的简单应用程序,那么 Gearman 可能会矫枉过正。但从我个人使用它的经验来看,Gearman 的设置并不比你自己的队列难。