kafka简介
ApacheKafka®是一个分布式流媒体平台。有三个关键功能:
发布和订阅记录流,类似于消息队列或企业消息传递系统。
以容错的持久方式存储记录流。
记录发生时处理流。
Kafka通常用于两大类应用:
构建可在系统或应用程序之间可靠获取数据的实时流数据管道
构建转换或响应数据流的实时流应用程序
kafka概念
(1)什么是流处理?
所谓流处理,我的理解是流水线处理。例如,电子厂每个人负责一个功能,来了就处
理,不来就等着。
(2)partition和replication和broker有关吗?
partition和replication是分区和备份的概念。即使是单机一个broker也一样
支持。
(3)consumer如何设置和存储partition的offset偏移量,有哪几种消费模式,怎么确定消息是否被消费,将偏移量移到前面会立即消费到最后吗?
使用KafkaConsumer设置partition和offset。有自动提交和手动ack模式提交
偏移量两种消费方式。将偏移量移到前面需要设置成为消费状态会立即被消费(设置
新消费组)。
(4)AckMode模式有哪几种?
RECORD:处理记录后,侦听器返回时提交偏移量
BATCH:在处理poll()返回的所有记录时提交偏移量
TIME:只要已超过自上次提交以来的ackTime,就会在处理poll()返回的所有记录时提交偏移量
COUNT:只要自上次提交以来已收到ackCount记录,就会在处理poll()返回的所有记录时提交偏移量
COUNT_TIME:与TIME和COUNT类似,但如果任一条件为真,则执行提交
MANUAL:消息监听器负责确认()确认。 之后,应用与BATCH相同的语义
MANUAL_IMMEDIATE:当侦听器调用Acknowledgment.acknowledge()方法时,立即提交偏移量
Springboot使用kafka
(1)注入NewTopic自动在broker中添加topic
@Bean
publ