Kafka简介
简单介绍下Kafka相关内容,大部分内容摘自网络
Kafka简介
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
APIS
Kafka的API接口主要由4个部分构成,如图所示
Producer API
Producer
生产者API,用来生产发布信息流并推送入Kafka的Topic中
Consumer API
Consumer
消费者API,用来订阅Kafka的Topic并消费其中的信息流
Streams API
Streams
流API,是一个流处理器,从Topic中处理流数据
Connector
TOPICS&LOGS
TOPICS就是消息类型
Consumer Group消费者组,不同消费者组有自己的消费记录offset,不同组会重复消费同一个topic。
一个topic可以设置任意多个partition,partition会分配到kafka服务的broker上,这里分配有可能出现不均匀的情况。
同一个消费者组里多个consumer,去消费同一个topic,会把不同particion分配给不同的consumer,这里也可能是不均匀的