1、RabbitMQ数据库
RabbitMQ属于比较传统的消息队列系统,支持标准的消息队列协议(AMQP, STOMP,MQTT等),若是你的应用程序须要支持这些协议,那么仍是使用RabbitMQ。另外RabbitMQ支持比较复杂的consumer Routing,这点也是Kafka不提供的。架构
普遍用于金融保险、政企、电商、新零售、物流、视频互动、能源等行业业务的消息通信。异步
2、Kafka分布式
普遍用于日志收集、监控数据聚合、网站行为分析、流式数据处理、在线和离线分析等大数据领域,是大数据生态中不可或缺的产品之一;让数据集成变得简单:您能将 Kafka 中的消息导入到 ODPS、HBase、HBASE 等离线数据仓库;可普遍的与流计算引擎集成,包括阿里云平台的 StreamCompute、E-MapReduce 和开源产品 Spark、Storm 等。oop
经典应用场景:性能
一、网站活动跟踪大数据
成功的网站运营都会很是关注站点的用户行为并进行分析。经过消息队列 Kafka,您能够实时收集网站活动数据(包括用户浏览页面、搜索及其余行为等),并经过“发布/订阅”模型实现:网站
二、日志聚合搜索引擎
许多公司,好比淘宝、天猫平台天天都会产生大量的日志(通常为流式数据,如搜索引擎 pv、查询等),相较于日志为中心的系统,好比 Scribe 或者 Flume 来讲,Kafka 在提供一样高效的性能时,能够实现更强的数据持久化以及更低的端到端响应时间。Kafka 的这种特性决定它很是适合做为日志收集中心:阿里云
三、流计算处理
在不少领域,如股市走向分析、气象数据测控、网站用户行为分析,因为数据产生快、实时性强且量大,您很难统一采集这些数据并将其入库存储后再作处理,这便致使传统的数据处理架构不能知足需求。
与传统架构不一样,Kafka 以及 Storm/Samza/Spark 等流计算引擎的出现,就是为了更好地解决这类数据在处理过程当中遇到的问题,流计算模型能实如今数据流动的过程当中对数据进行实时地捕捉和处理,并根据业务需求进行计算分析,最终把结果保存或者分发给须要的组件。
四、数据中转枢纽
近 10 多年来,诸如 KV 存储(HBase)、搜索(ElasticSearch)、流式处理(Storm/Spark Streaming/Samza)、时序数据库(OpenTSDB)等专用系统应运而生。这些系统是由于单一的目标而产生,也因其简单性使得在商业硬件上构建分布式系统变得更加容易且性价比更高。
一般,同一份数据集须要被注入到多个专用系统内。例如,当应用日志用于离线日志分析,搜索单个日志记录一样不可或缺,而构建各自独立的工做流来采集每种类型的数据再导入到各自的专用系统显然不切实际,利用 Kafka 做为数据中转枢纽,同份数据能够被导入到不一样专用系统中。
3、Redis
4、ActiveMQ