首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
5赞
486
当前位置:
开发笔记
>
程序员
> 正文
rabbitmq与gearman有什么不同之处?
作者:携手相约幸福 | 2021-09-01 19:11
rabbitmq与gearman都是做消息队列的,那么两者之间有什么区别,或者说优点与缺点的比较各在哪里?
rabbitmq与gearman都是做消息队列的,那么两者之间有什么区别,或者说优点与缺点的比较各在哪里?
回复内容:
Gearman是分布式任务分发系统,重点是job
RabbitMQ是分布式消息队列,重在message/data
Gearman要实现Message的priority、order、filter、persistence..都比较麻烦(或者说不够直接),而这些都是典型的MQ系统要考虑的。 正如楼上回复的一样,Gearman 偏重任务分发(也有调度),基本工作模式,是由 Client (多个)向 Server 去注册一些函数,当然 Server 接受到任务后,分发到这些函数上。
RabbitMQ 则是很多消息模型的实现,比如简单的生产者消费者、发布订阅、广播,甚至可以模拟 RPC 等等,Gearman 的功能,简单的生产者消费者模型就可以实现,只是思路上稍微换一下,需要消费消息来实现,官方也有类似参考例子:RabbitMQ - RabbitMQ tutorial - Work queues
建议看下 RabbitMQ 官方这个例子教程 RabbitMQ - Getting started with RabbitMQ
,里面包含了几种模型的实例,很容易结合我们现实中场景。
至于优缺点,仁者见仁。
大概三年前吧,我给一家某行业内比较知名公司优化过 Gearman 到 RabbitMQ 的方案,高峰时候一小时消息量在 x 千万以上,优化前 Gearman Server 负载较重,包括 Client(Worker)也会经常挂掉,很多消息会丢失,后来迁移到 RabbitMQ 上面,Server 只有一台(备份一台基本从来就没用过),Client 采用 ACK 确认消息成功消费掉,后来就没有然后了。。。这里故事不在描述。
推荐使用 RabbitMQ,不仅仅是作为消息模型,还可以改善系统架构设计。
推荐阅读
程序员
如何在iOS设备中保存您的上一个已知位置?
如何解决《如何在iOS设备中保存您的上一个已知位置?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
是否保证类型T [x] [y]与C中的T [x*y]具有相同的存储器布局?
如何解决《是否保证类型T[x][y]与C中的T[x*y]具有相同的存储器布局?》经验,为你挑选了2个好方法。 ...
[详细]
程序员
数组内的增量运算符
如何解决《数组内的增量运算符》经验,为你挑选了1个好方法。 ...
[详细]
程序员
NFC Offhost路由到Nexus 5X和Nexus 6P上的UICC
如何解决《NFCOffhost路由到Nexus5X和Nexus6P上的UICC》经验,为你挑选了2个好方法。 ...
[详细]
程序员
如何在ipython Notebook(Jupyter)中输入规范(乳胶)?
如何解决《如何在ipythonNotebook(Jupyter)中输入规范(乳胶)?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
通过Hibernate和PostgreSQL执行查询的差异导致PSQLException
如何解决《通过Hibernate和PostgreSQL执行查询的差异导致PSQLException》经验,为你挑选了1个好方法。 ...
[详细]
程序员
将原始类型分配给泛型类型时,为什么不会出现编译器错误?
如何解决《将原始类型分配给泛型类型时,为什么不会出现编译器错误?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
将转义的彩色字符打印为bash
如何解决《将转义的彩色字符打印为bash》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何在谷歌地图api中的自定义图标图像上显示标签
如何解决《如何在谷歌地图api中的自定义图标图像上显示标签》经验,为你挑选了1个好方法。 ...
[详细]
程序员
节点JS:登录不工作
如何解决《节点JS:登录不工作》经验,为你挑选了0个好方法。 ...
[详细]
程序员
在输入[type ='number']上,Edge总是为`valueAsNumber`返回`NaN`
如何解决《在输入[type='number']上,Edge总是为`valueAsNumber`返回`NaN`》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用Nginx作为Gunicorn前面的反向代理时,Django应用程序中的REMOTE_ADDR值为空
如何解决《使用Nginx作为Gunicorn前面的反向代理时,Django应用程序中的REMOTE_ADDR值为空》经验,为你挑选了1个好方法。 ...
[详细]
程序员
在通用Windows应用程序中,如果视图模型中的属性更改,如何使用xaml更改按钮的背景颜色和数据绑定
如何解决《在通用Windows应用程序中,如果视图模型中的属性更改,如何使用xaml更改按钮的背景颜色和数据绑定》经验,为你挑选了1个好方法。 ...
[详细]
程序员
使用字典作为可选参数的函数 - Python
如何解决《使用字典作为可选参数的函数-Python》经验,为你挑选了2个好方法。 ...
[详细]
程序员
Ruby:从模块中返回多个方法作为procs的更好方法
如何解决《Ruby:从模块中返回多个方法作为procs的更好方法》经验,为你挑选了0个好方法。 ...
[详细]
程序员
刷新解析数据 - Ui路由器
如何解决《刷新解析数据-Ui路由器》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Azure VM上的IIS/HTTP端点(非经典)
如何解决《AzureVM上的IIS/HTTP端点(非经典)》经验,为你挑选了1个好方法。 ...
[详细]
程序员
为什么`<=`和`> =`与`<`,`>`和`==`无关?
如何解决《为什么`<=`和`>=`与`<`,`>`和`==`无关?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何使用selenium重新加载html DOM,以便新命令将定位新节点?
如何解决《如何使用selenium重新加载htmlDOM,以便新命令将定位新节点?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
帖子上的真实性令牌无效
如何解决《帖子上的真实性令牌无效》经验,为你挑选了1个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
携手相约幸福
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
csrf
egmentfault
graphql
https
restful
rpc
udp
websocket
xss
以太坊
区块链
安全
智能合约
架构设计
比特币
程序员
职场
RankList | 热门文章
1
在RxJava服务中管理事务性的正确方法是什么?
2
确定与数组中的间隔匹配的值的最快方法
3
phpexcel将qrcode插入excel并将其保存到客户端
4
ANTLR4中交替与测序的优先顺序
5
如何在iOS设备中保存您的上一个已知位置?
6
是否保证类型T [x] [y]与C中的T [x*y]具有相同的存储器布局?
7
数组内的增量运算符
8
NFC Offhost路由到Nexus 5X和Nexus 6P上的UICC
9
如何在ipython Notebook(Jupyter)中输入规范(乳胶)?
10
通过Hibernate和PostgreSQL执行查询的差异导致PSQLException
11
将原始类型分配给泛型类型时,为什么不会出现编译器错误?
12
将转义的彩色字符打印为bash
13
如何在谷歌地图api中的自定义图标图像上显示标签
14
节点JS:登录不工作
15
在输入[type ='number']上,Edge总是为`valueAsNumber`返回`NaN`
16
使用Nginx作为Gunicorn前面的反向代理时,Django应用程序中的REMOTE_ADDR值为空
17
在通用Windows应用程序中,如果视图模型中的属性更改,如何使用xaml更改按钮的背景颜色和数据绑定
18
使用字典作为可选参数的函数 - Python
19
Ruby:从模块中返回多个方法作为procs的更好方法
20
刷新解析数据 - Ui路由器
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有