首页
技术笔记
网址导航
Json在线解析
二维码
Ip地址查询
在线流程图
新用户注册
|
会员登录
在线工具
开发笔记
毒鸡汤
网址导航
免费在线流程图
10赞
444
当前位置:
开发笔记
>
程序员
> 正文
rabbitmq与gearman有什么不同之处?
作者:无名有名我无名_593 | 2021-09-08 09:45
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,不仅仅是作为消息模型,还可以改善系统架构设计。
推荐阅读
程序员
我们如何将变量(字符串)传递给xpath包含函数?
如何解决《我们如何将变量(字符串)传递给xpath包含函数?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Java正则表达式返回完整字符串而不是捕获
如何解决《Java正则表达式返回完整字符串而不是捕获》经验,为你挑选了1个好方法。 ...
[详细]
程序员
为什么$('.classname')&document.getElementsByClassName('classname')返回不同的东西?
如何解决《为什么$('.classname')&document.getElementsByClassName('classname')返回不同的东西?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
新线程多次
如何解决《新线程多次》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如果四个变量相等
如何解决《如果四个变量相等》经验,为你挑选了1个好方法。 ...
[详细]
程序员
无法在xib文件中向UITableView添加PrototypeCell
如何解决《无法在xib文件中向UITableView添加PrototypeCell》经验,为你挑选了2个好方法。 ...
[详细]
程序员
SAPUI5 Android App - 资源未加载
如何解决《SAPUI5AndroidApp-资源未加载》经验,为你挑选了0个好方法。 ...
[详细]
程序员
使用node.js在Azure文件存储中上载文件
如何解决《使用node.js在Azure文件存储中上载文件》经验,为你挑选了1个好方法。 ...
[详细]
程序员
我们可以在ScrollView Xamarin.Forms中隐藏滚动条
如何解决《我们可以在ScrollViewXamarin.Forms中隐藏滚动条》经验,为你挑选了2个好方法。 ...
[详细]
程序员
尝试通过ACTION_OPEN_DOCUMENT为自定义DocumentsProvider尝试采用PersistableUriPermission()失败
如何解决《尝试通过ACTION_OPEN_DOCUMENT为自定义DocumentsProvider尝试采用PersistableUriPermission()失败》经验,为你挑选了0个好方法。 ...
[详细]
程序员
knitr R markdown文档中的mapview错误
如何解决《knitrRmarkdown文档中的mapview错误》经验,为你挑选了1个好方法。 ...
[详细]
程序员
在kotlin中使用elvis运算符时如何否定布尔表达式?
如何解决《在kotlin中使用elvis运算符时如何否定布尔表达式?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
Django Rest使用用户名或电子邮件登录JWT?
如何解决《DjangoRest使用用户名或电子邮件登录JWT?》经验,为你挑选了1个好方法。 ...
[详细]
程序员
卷积中的伪像
如何解决《卷积中的伪像》经验,为你挑选了1个好方法。 ...
[详细]
程序员
如何更改Swift标头("ProductModuleName-Swift.h")产品名称作为产品名称动态更改
如何解决《如何更改Swift标头("ProductModuleName-Swift.h")产品名称作为产品名称动态更改》经验,为你挑选了1个好方法。 ...
[详细]
程序员
django AdminSplitDateTime有效的日期/时间错误
如何解决《djangoAdminSplitDateTime有效的日期/时间错误》经验,为你挑选了1个好方法。 ...
[详细]
程序员
在按钮单击中执行AsyncTask而不会出现崩溃或异常
如何解决《在按钮单击中执行AsyncTask而不会出现崩溃或异常》经验,为你挑选了1个好方法。 ...
[详细]
程序员
我可以更改Android自定义键盘的输出字体吗?
如何解决《我可以更改Android自定义键盘的输出字体吗?》经验,为你挑选了0个好方法。 ...
[详细]
程序员
我在哪里可以找到有关Google Test的综合文档?
如何解决《我在哪里可以找到有关GoogleTest的综合文档?》经验,为你挑选了2个好方法。 ...
[详细]
程序员
以功能方式从列表创建配对列表
如何解决《以功能方式从列表创建配对列表》经验,为你挑选了1个好方法。 ...
[详细]
吐了个 "CAO" !
吐个槽吧,看都看了
会员登录
|
用户注册
无名有名我无名_593
这个屌丝很懒,什么也没留下!
关注作者
Tags | 热门标签
csrf
egmentfault
graphql
https
restful
rpc
udp
websocket
xss
以太坊
区块链
安全
智能合约
架构设计
比特币
程序员
职场
RankList | 热门文章
1
如何在包中的文件中使用全局var?
2
条形码128 - 3位字符串条形码宽度大于4位数字符串条形码
3
Android switchcompat禁用文本单击
4
如何在STS中使用Apache Tomcat 8(Spring Tool Suite最新版本)?
5
使用SymPy将符号表达式转换为Python函数
6
如何在materilize CSS中控制自动打开的Datepicker?
7
SIP代理和SIP出站代理之间的区别
8
C#创建Excel工作表后期绑定
9
在android studio中有没有一种方法来禁用模块而不删除它?
10
打开jenkins.war时出错
11
网站如何知道他们不是默认的主页或搜索提供商?
12
ios-deploy无法在Mac OS X El Capitan 10.11上安装
13
我们能否从他们的限制中推断出两个阶级的关系?
14
Ext.MessageBox.confirm自定义按钮
15
如何在没有调用onCreate()的情况下返回First活动
16
Mongo中findOne和find_one有什么区别?
17
当提交足够的任务时,修复了线程池线程阻塞
18
如何在pyspark中找到两个rdd的交叉点?
19
为什么以下函数不是尾递归?
20
是否有适用于AWS Lambda的模拟器?
DevBox开发工具箱 | 专业的在线开发工具网站
京公网安备 11010802040832号
|
京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有