项目里使用了kafka和spark做消息的流式处理,可是我对kafka一窍不通。每次测试找我kafka都是傻坐着,主管让我花时间学习kafka。java
在大数据时代,分析,处理和挖掘海量数据成为了目前技术领域的热点和难点。kafka是一款开源,轻量,分布式,可分区,可备份的消息系统。kafka可以很好地处理活跃的流数据,使得数据在各个子系统中高性能、低延时地不停流转。node
kafka存储数据使用的是文件系统。只要文件系统足够大,数据就能够一直追加。kafka也提供了数据最大保存时间,用户能够设置。由于是写到硬盘上,因此节点故障,重启后数据可恢复python
由于依赖zk注册,只要注册服务。就能够在多态廉价服务器上搭建集群c++
支持java,scala,c,c++,python,go,erlang,ruby,node.js等,还好我都认识。apache
kafka 0.10后引入了kafka stream,一个专一于流处理的jar包。安全
生产者,消费者链接代理要认证,zk链接代理要认证,通讯数据加密,客户端读写也要认证。ruby
kafka能够为每一个主题指定副本数,进行持久化备份服务器
kafka的代理是不会记录消息是否被消费,消费偏移量的管理交由消费者本身或组协调器来维护。app
kafka支持gzip,snappy,lz4三种压缩方式,把多条消息压缩成messageset,再放到一个消息中。框架
https://rocketmq.apache.org/d...