博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
kafka入门介绍
阅读量:4311 次
发布时间:2019-06-06

本文共 1175 字,大约阅读时间需要 3 分钟。

一、基本概念

    kafka使用Scala编写的,是一种分布式的,基于发布/订阅的消息系统,能够高效并实时的吞吐数据,已及通过分布式集群及数据复制冗余机制(副本冗余机制)实现数据的安全。

二、与常用的消息队列比较 

    RabbitMQ是使用Erlang编写的一个开源的消息队列,本身支持很多的协议,它是一个非常重量级,适合企业级开发。同时实现了Broker架构,这意味着消息在发送给客户端时先在中心队列排队,对路由,负载均衡或者数据持久化都有很好的支持。

    Redis是一个基于key-value键值对的NOSQL数据库,开发维护很活跃。支持MQ功能,所有完全可以当做一个轻量级的队列服务来使用。

    ZeroMQ号称最快的消息队列系统,尤其针对大吞吐量的需求场景。ZeroMQ能够实现RabbitMQ不擅长的高级/复杂的队列,但是开发人员需要自己组合多种技术框架,技术上的复杂度是对这MQ能够应用成功的挑战。但是ZeroMQ仅提供非持久性的队列,也就是说如果宕机,数据将会丢失。其中,Twitter的Storm 0.9.0以前的版本中默认使用ZeroMQ作为数据流的传输(Storm从0.9版本开始同时支持ZeroMQ和Netty(NIO)作为传输模块)。

    ActiveMQ是Apache下的一个子项目。 类似于ZeroMQ,它能够以代理人和点对点的技术实现队列。同时类似于RabbitMQ,它少量代码就可以高效地实现高级应用场景。

三、kafka适用场景

  1、对于一些常用的消息系统,kafak是个不错的选择,partitons/replication和容错,可以使kafka具有良好的扩展性和性能优势,不过到目前为止,我们应该很清楚认识到,kafka并没有提供JMS中的"事务性“消息传输担保(消息确认机制)"消息分组"等企业级特性;kafka只能使用作为"常规"的消息系统,在一定程度上,尚未确保消息的发送与接收绝对可靠(比如,消息重发,消息发送丢失等)。

  2、kafka可以作为"网站活性跟踪"的最佳工具;可以将网页/用户操作等信息发送到kafka中,并实时监控,或者离线统计分析等。

  3、kafka通常被用于可操作的监控数据。这包括从分布式应用程序来的聚合统计用来生产集中的运营数据提要。

  4、kafka的特性决定他非常适合为“日志搜集中心‘’;application可以将操作日志”批量""异步“的发送到kafka集群中,而不是保存在本地或者DB中。kafka可以批量提交消息等,这对producer端而言,几乎感觉不到性能的开支,此时consumer端可以使Hadoop等其他系统的存储和分析系统

 

转载于:https://www.cnblogs.com/gyan/p/9609516.html

你可能感兴趣的文章
win64 Python下安装PIL出错解决2.7版本 (3.6版本可以使用)
查看>>
获取各种类型的节点
查看>>
表达式求值-201308081712.txt
查看>>
centos中安装tomcat6
查看>>
从Vue.js窥探前端行业
查看>>
学习进度
查看>>
poj3368 RMQ
查看>>
“此人不存在”
查看>>
github.com加速节点
查看>>
解密zend-PHP凤凰源码程序
查看>>
python3 序列分片记录
查看>>
Atitit.git的存储结构and 追踪
查看>>
atitit 读书与获取知识资料的attilax的总结.docx
查看>>
B站 React教程笔记day2(3)React-Redux
查看>>
找了一个api管理工具
查看>>
C++——string类和标准模板库
查看>>
zt C++ list 类学习笔记
查看>>
git常用命令
查看>>
探讨和比较Java和_NET的序列化_Serialization_框架
查看>>
1、jQuery概述
查看>>