搜索
搜 索
本版
文章
帖子
用户
图文精华
hadoop-2.6.0+zookeeper-3.4.6+hbase-1.0.0+hive-1.1.0完全分布 ...
首页
Portal
专题
BBS
面试
办公|编程助手
更多
登录
注册
用户组:游客
主题
帖子
云币
我的帖子
我的收藏
我的好友
我的勋章
设置
退出
导读
淘贴
博客
群组
社区VIP
APP下载
今日排行
本周排行
本周热帖
本月排行
本月热帖
会员排行
About云-梭伦科技
»
专题
›
技术学习(版主发帖区)
›
大数据学习
›
问题解答
›
消息中间件ActiveMQ与Kafka对比之ActiveMQ的介绍
0
2
2
分享
消息中间件ActiveMQ与Kafka对比之ActiveMQ的介绍
水电费
2015-5-31 11:34:48
发表于
问题解答
[显示全部楼层]
阅读模式
关闭右栏
2
96981
About云VIP帮助找工作和提升
问题导读
1.什么是ActiveMQ?
2.ActiveMQ有哪些特性?
3.什么是Kafka?
序言
今天让我们来谈谈身份高贵,举止优雅的消息中间件,主要还是浅谈,消息中间件这块水太深。大体上我们结合互联网业务做一些探讨,从互联网主要关心的消息安全性,服务器的稳定性容错性以及吞吐量三方面来讲。
由于这块产品非常多,我只挑选两个我使用过的产品结合使用经验做一些研究,他们是ActiveMQ和Kafka,前者完全实现了JMS的规范,后者看上去有一些“野路子”,并没有纠结于JMS规范,剑走偏锋的设计了另一套吞吐非常高的分布式发布-订阅消息系统,目前非常流行。接下来我们结合三个点(消息安全性,服务器的稳定性容错性以及吞吐量)来分别谈谈这两个消息中间件。我们先谈ActiveMQ。
1 血统纯正的ActiveMQ
AMQ是企业级应用的宠儿,Apache出品,完全遵循JMS规范,但是又非常的“重”,在互联网中它的性能令人诟病,目前(5.9版本),它依托Zookeeper和LevelDB支持主备failover切换及副本备份,但负载均衡还是不够完善……下面我们分话题来谈:
1)消息的安全性
在集群环境下,通过Zookeeper选出master,其余节点均为slave,只有master接受和处理客户端连接,其余slave节点均连接至master,并同步所有的持久化操作。(但是此种模式不支持延迟消息和计划消息,因为他们存储在KahaDB文件里。)如果master挂了,最后更新的slave将被选中当master。
并且,所有的消息操作需要集群一定节点(N/2+1)都操作成功才会返回操作成功的结果,如果是N=3个replicas节点,那么需要集群中有3/2+1=2个节点都确认操作成功。
所以如果结合JMS规范的ACK指令,消息的安全性在一个健康的集群中完全可以得到保障,三个节点的集群可以忍受1个节点挂掉仍可以提供服务。
2)服务的稳定容错性
客户端通过failover协议连接集群服务,所以AMQ的稳定性主要依赖于ZK和自身集群的节点状态,ZK集群的稳定性暂且不表,AMQ自身集群主要是通过公式(N/2+1)来计算,上一节已经谈到3个节点允许挂一个节点,看起来稳定性还是可以的,唯一担心的就是客户端的读写链接压力全部在master上。
3) 吞吐量
目前主备集群中所有的topic和queue的读写都在单节点的master上进行,所以吞吐量完全依赖单点master,看官网上AMQ是支持Broker clusters的,但是这个支持缺点很多,首先它依然采用failover协议,这看起来与主备集群冲突了,第二点如果其中一个broker挂了,那它所属的还没有被消费的消息将无法消费直到broker重启成功。
如果将Broker集群与主备集群结合起来倒是满足去除单点又达到负载均衡的需求,可惜两者都通过failover协议连接,目测需要改造后才能使用。
最后我们看两个AMQ的特性:
1)Virtual Topics
同一个应用上的一个topic订阅不能使用多个consumer来共同承担消息处理功能。因为每个consume都会获取所有消息,而且如果这个consume挂了,消息就无法被消费了,使用Virtual Topics可以实现消费端分组,实际上存储的时候是被转换成Queue的语义存储的。这样多个消费者可以同时消费同一个虚拟topic又不会收到全部的消息
2)Composite Destinations
这个特性的意义主要就是方便吧,可以同时发送一份消息至多个topic和多个queue,还可以使用filter去select某些消息的方向。具体参考官网文档吧。
2 性能怪兽Kafka
待更。。。
参考资料:
http://activemq.apache.org/replicated-leveldb-store.html
http://activemq.apache.org/clustering.html
http://activemq.apache.org/networks-of-brokers.html
http://my.oschina.net/u/719192/blog/293749
http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html
http://activemq.apache.org/virtual-destinations.html
中间件
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
相关帖子
.
求问 kafka作为消息中间件怎么与hadoop集成?
.
Spark入门篇第1课:Scala光速入门
.
Spark入门篇第1课:Scala光速入门
.
阿里RocketMQ部署与监控
.
openstack学习
已有(2)人评论
电梯直达
正序浏览
小南3707
发表于 2015-6-2 09:06:38
赞!
回复
使用道具
举报
显身卡
gf84
发表于 2015-6-7 01:48:30
谢谢分享!!!!!
回复
使用道具
举报
显身卡
还有一些帖子被系统自动隐藏,点此展开
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
发表新帖
水电费
中级会员
关注
33
主题
37
帖子
7
粉丝
TA的主题
Hadoop可视化分析利器之Hue
2015-7-3
Solr5.1.0如何安装部署?
2015-7-3
Sahara加速OpenStack与Hadoop的融合
2015-7-2
我怎么看Hadoop Summit 2015和Spark Summit 2015?Dropbox邵铮
2015-7-2
苏宁张小斌:OpenStack实践基础知识(三)
2015-7-2
24小时热文
Flink CDC:新一代实时数据集成框架
蚂蚁面试就是不一样
如何高效学习
人情世故速查速用大全集
框架思维
关闭
推荐
/2
中文版ChatGPT
1.无需魔法 2.提高编程效率 3.提高文档能力
查看 »
新手帮助
新手帮助:注册遇到问题,领取资源,加入铁粉群,不会使用搜索,如何获取积分等
查看 »
意见
反馈