一.Kafka 简介
Apache Kafka是一个分布式的,基于发布/订阅的消息系统。最初由LinkedIn开发,是用Scala和Java语言编写的。随后于2011年初开源,并捐赠给了Apache Software Foundation.
目前,Kafka被广泛使用于各类大型企业系统、银行系统和互联网系统中,用于分布式消息处理和流式数据处理。
二.Kafka 基础概念
- 生产者和消费者:消息的发送者叫 Producer,消息的使用者和接受者是 Consumer。生产者将数据发送到 Kafka 集群中,消费者从中获取消息进行业务的处理。
- 主题(topic):一个 topic 力保存的是同一类消息,相当于对消息的分类。每个 producer 将消息发送到 kafka 中时,都需要指明要存的 topic 是哪个,也就是指明这个消息属于哪一类。
- 分区(partition):每个主题都可以分成多个 partition。当主题要处理的消息量很大时,可以通过多个 partition 来分担消息处理和存储的压力。
- 消费组(Consumer Group):可以对一个主题创建 1 个或者多个消费组,以消费组的维度去获取主题下的消息并进行处理。一个消费组中包含多个消费者实例。
三.生产者-主题-消费者
四.生产者-发送消息
五.消费者-消息消费处理