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