activemq和kafka的区别
作者:大宽宽
链接:https://www.zhihu.com/question/272186518/answer/367644663
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Active MQ被称为“传统”mq。所谓“传统”是指,
- 他要支持一些标准接口,比如AMQP, STOMP等
- 需要维护consumer的状态。即当前consumer读到哪个数据了,是active mq来维护的。
- active mq最早用来做企业级别的系统整合。要支持所谓的“企业级队列模式“,但请原谅我搞到最后也没理解这个企业级到底怎么企业级了,也许现在的大多数企业早已不像10多年前那样设计系统了?
- active mq因为支持XA协议,所以可以和JDBC一起实现2PC分布式事务,但我基本没见过有人这么用,大概是因为太慢和太难维护的原因。
- active mq支持对事物处理的commit(自动+手动),但是如果你理解分布式一致性的话就能明白单一系统能够commit还是无法满足一致性的要求
其实我看到过有人用它,完全是因为他是java这个圈子里第一个广泛被使用的mq(之后又有rabbit mq),是一种习惯。
而Kakfa一开始被设计就是以高吞吐+高性能+HA来实现的。我的压测显示Kafka的吞吐量大概高于active mq两个数量级。即使Kafka配置了全同步的复制,也会比Active MQ高5~6倍。
Kafka的核心设计是append log file。即不断追加写log文件来实现消息数据的写入(对比一下,active mq的内部更偏向一个传统数据库,不过active mq最近的版本开始用level db)。磁盘追加写的性能要远高于随机写。Kafka允许consumer自己维护自己读取到了的位置,还允许随时调整这个位置做“message replay”。
Kafka围绕topic和partition的模型解决了message的分发和HA的问题,并且能够通过配置来支持全异步,半同步,全同步的复制。
最近Kafka提供了一个新的Stream API,顺便还支持了事务(但限制在数据处理这个步骤)
总体来讲Kafka特别适合的场景是实时数据分析,log分析等场景。但是如果用来做业务事件的分发,也非常适合。
如果业务场景压力不大,又比较传统,需要那些老的message协议,用Active MQ完全够用,但同时也可以考虑一下同类的Rabbit MQ;但是如果吞吐量的要求很大,那么Kafka几乎可能是自研之外,非常理想的选择了。
需要更多教程,微信扫码即可
activemq和kafka的区别相关推荐
- 消息中间件(RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ等)的定义、组成、特点、优缺点、应用场景面试题
大家都参与过网上电商平台的秒杀活动吧,一般的秒杀活动辄几百万的参与人数,而"双十一"的参与人数更是已"亿"为计量单位.那么这些电商平台的系统架构是怎样的,它们是 ...
- 消息队列ActiveMQ, RabbitMQ, Kafka, MSMQ等对比介绍
ActiveMQ和RabbitMQ的区别? 关于文章没多少内容,请进链接:https://blog.csdn.net/qq_30764991/article/details/80573352, htt ...
- ServiceMix部署自定义开发程序(ActiveMQ和Kafka实现)
上一篇整理了ServiceMix环境的搭建过程,接下来介绍在ServiceMix平台下如何开发程序并部署到Karaf容器内,同时介绍下karaf容器内置的ActiveMQ消息组件的发送和接收,以及目前 ...
- ActiveMQ RabbitMQ KafKa对比
前言: ActiveMQ和 RabbitMq 以及Kafka在之前的项目中都有陆续使用过,当然对于三者没有进行过具体的对比,以下摘抄了一些网上关于这三者的对比情况,我自己看过之后感觉还 是可以的,比较 ...
- ActiveMQ—Queue与Topic区别
Queue与Topic区别 转自:http://blog.csdn.net/qq_21033663/article/details/52458305 队列(Queue)和主题(Topic)是JMS支持 ...
- ibm linux mq 发送消息_RabbitMq、ActiveMq、Kafka和Redis做Mq对比
一.RabbitMq RabbitMQ是一个Advanced Message Queuing Protocol(AMQP)的开源实现,由以高性能.可伸缩性出名的Erlang写成.RabbitMQ Se ...
- Kafka、 RabbitMQ、Redis、 ZeroMQ、 ActiveMQ、 Kafka/Jafka 对比
Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能. 高吞吐率.即使在非常廉价 ...
- tomcat,zookeeper,activeMQ,Kafka设置jvm参数
1,tomcat设置jvm参数 设置方法: 在tomcat bin 目录增加配置:setenv.sh #add tomcat pid CATALINA_PID="$CATALINA_BASE ...
- RabbitMQ和Kafka的区别
前言 开源社区有好多优秀的队列中间件,比如RabbitMQ和Kafka,每个队列都貌似有其特性,在进行工程选择时,往往眼花缭乱,不知所措.对于RabbitMQ和Kafka,到底应该选哪个? Rabbi ...
最新文章
- linux下搭建hadoop环境步骤分享
- 【AI白身境】学AI必备的python基础
- VC++制作DLL具体解释
- leetcode 523. 连续的子数组和
- 【基于注解方式】Spring整合Kafka
- php7扩展安装奇葩事
- java批处理框架 pdf_史上最轻松入门之Spring Batch - 轻量级批处理框架实践
- c# WPF设置软件界面背景为MediaElement并播放视频
- 欧姆龙cp1h指令讲解_欧姆龙cp1h常用指令学习(六)功能块、子程序
- css设置文本(上下)居中显示
- 微信小程序请求接口提示Provisional headers are shown
- html的3d旋转木马插件,js 3D旋转木马特效插件
- 81章 老子1章到_国学经典《老子*道德经》全文及翻译(全文共81章)。(此第7部分:61-70章)...
- 100以内的所有质数的输出
- 了解cuda和显卡等基本概念
- SSH免密登陆功能配置
- Git实用教程 4.0:回到过去
- idea java手册
- 萤火虫算法以及避障算法path planning in uncertain environment by using firefly algorithm(萤火虫算法在实际中的应用)
- ESP8266桌面时钟总结
热门文章
- 打开新经济大门 淘宝直播如何打造最有价值的直播平台?
- “我在B站有套房”成真:云蹦迪、不停学还健身
- 真香!AirPods Pro美国全网脱销,网友:而我内心却毫无波澜
- 期待!华为P40渲染图再曝光:前置打孔双摄+6.5英寸大屏
- 高通首席技术官:5G+AI是至关重要的组合
- 索尼发布Xperia 8手机:采用骁龙630处理器
- vivo V15 Pro宣传片放出:前置3200万像素弹出式摄像头
- 【点阵液晶编程连载五】液晶驱动代码的移植
- 比Postman更好用!在国产接口调试工具Apipost中使用Mock
- 常见的软件测试缺陷分类:遇到测试缺陷怎么处理?