赞
踩
首先说下一为什么使用MQ:
然后衡量MQ标准的指标:服务性能、可靠性、数据存储、集群架构
概念: 是Apache流行的开源消息总线,支持JMS规范
优点: API丰富;集群架构模式多种
缺点: 在如今的高并发,大数据处理的场景下显得力不从心,经常会出现一些小问题,消息延迟,堆积,堵塞等
适用情况: 小型企业
master-slave模式: 通过zk确立一个主节点,主节点对外提供服务,从节点不对外提供服务。当主节点不可用,另外一个节点就转成主节点,对外提供服务,已达到高可用的目的。
network模式: 就相当于两组master-slave组合在一起
概念: 是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目
优点: 基于pull模式来处理消息消费,支持高吞吐量
缺点: 不支持事务;对消息的重复、丢失、错误没有严格要求
适用情况: 产生大量数据的互联网服务的数据收集业务
Kafka集群也是采用zk进行集群,当一个数据存放在一个节点中,会通过relicate同步到其他节点,所以我们不需要更多的关注kafka有可能丢失消息,因为其他节点会有这份数据,除非你这个地区的kafka都挂了。可靠性高的场景不适用
概念: 是阿里开源的消息中间件,目前是Apache顶级项目
优点: 纯java开发,高吞吐量、高可用、对kafka缺点做了优化(消息的可靠性传输和事务性做了优化)
缺点: 不开源
适用情况: 大规模分布式系统
RocketMQ集群它刚开始也是依赖zk做集群的,但是觉得太慢就自己开发了Name Server
概念: 使用Erlang语言开发,基于AMQP协议
优点: 支持数据一致性,稳定性,可靠性,高吞吐量
缺点: 性能比不上kafka,但是也很高了
适用情况: 均适用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。