一、初识kafka
1.1、Topic:
Topic好比文件夹,一个Topic可以被分为若干个分区,一个分区就是一个提交日志。在每个分区中消息以先入先出的顺序读取,由于一个主题一般包含若干个分区,因此无法在整个主题中保证消息的顺序。分区可以分布在不同的服务器上。
1.2、Producer:
1.3、Consumer:
消费者通过检查消息的偏移量来区分已经读取过的消息,偏移量是一个不断递增的整数值,在创建消息时,kafka会把它添加到消息里。在给定的分区里每个消息的偏移量都是唯一的,Consumer把每个分区最后读取的消息偏移量保存在Zookeeper或者Kafka上,如果消费者关闭或者重启,它的读取状态不会丢失。
1.4、Broker消息保留策略
保留消息是kafka的一个重要特性,kafka broker的消息保留策略是这样的:要么保留一段时间,要么保留到消息达到一定大小的字节数,当消息达到这些上限时,旧消息就会过期并被删除。
1.5、多集群
当数据类型分离或者安全需求隔离时,建议使用kafka多集群,kafka的消息复制机制只能在单集群中进行,不能在多个集群中进行。kafka提供了一个叫MirrorMaker的工具,可以用它来实现多集群的复制,MirrorMaker的核心组件包含一个生产者和消费者,两者之间通过一个队列相连
二、消费者
1、消息轮询是消费者API的核心,通过一个简单的轮询向服务器请求数据,轮询就会处理所有的细节