Apache Kafka 是一个分布式流媒体平台 流媒体平台有三个关键功能: 1.发布和订阅记录流,类似于消息队列或企业消息传递系统。 2.以容错的持久方式存储记录流。 3.记录发生时处理流。 Kafka通常用于两大类应用: 构建可在系统或应用程序之间可靠获取数据的实时流数据管道 构建转换或响应数据流的实时流应用程序
在流计算中,kafka主要功能是用来缓存数据,storm可以通过消费kafka中的数据进行流计算。 是一套开源的消息系统,由scala写成。支持javaAPI的。 kafka最初由LinkedIn公司开发,2011年开源。 2012年从Apache毕业。 是一个分布式消息队列,kafka读消息保存采用Topic进行归类。
发送消息:Producer(生产者) 接收消息:Consumer(消费者)
1)解耦 为了避免出现问题 2)拓展性 可增加处理过程 3)灵活 面对访问量剧增,不会因为超负荷请求而完全瘫痪。 4)可恢复 一部分组件失效,不会影响整个系统。可以进行恢复。 5)缓冲 控制数据流经过系统的速度。 6)顺序保证 对消息进行有序处理。 7)异步通信 akka,消息队列提供了异步处理的机制。允许用户把消息放到队列 , 不立刻处理。
kafka依赖zookeeper,用zk保存元数据信息。 搭建kafka集群要先搭建zookeeper集群。
保存kafka集群节点状态信息和消费者当前消费信息。