-
kafka 简介
kafka 是一个消息订阅转发分布式系统,由生产者(Producer)发送消息至 kafka,消费者(Consumer)订阅消息获取.
可以想象成一个公众号,生产者将消息发送至公众号,消费者可以通过订阅公众号来获取信息. -
kafka 有什么用处
可以想象一下,在多个应用之间通信的情况下,只需要将所有消息下发至 kafka ,而接收方只需要订阅相应的主题(Topic),这样就可以减少很多重复的处理.
如下图,多个应用之间需要通信,不使用 kafka 的情况下,通信链路非常复杂,重复工作也很多
那么,如果使用了 kafka 后就会变成这样
-
kafka 基本概念
1.节点(broker)
一个 kafka 实例为一个节点,一个 kafka 集群由多个节点组成,每个 kafka实例都有唯一的 brokerid.
2.消息
消息可以理解为数据库中的一行数据,比如在 A 系统需要同步一条订单数据到 B 系统时,这条订单数据就是一个消息
一条消息包含主题,分区,键,值
3.主题(Topic)
如上图所示,应用将消息发送至 kafka 时,怎么知道发送的是什么消息呢,这里就可以用主题来区分了,比如现在有个主题为订单 的 topic ,那么生产者在发送订单数据时,就知道是将订单数据发送至主题为订单的 topic,而订阅了主题为订单的消费者也就 能取到对应的订单数据了.
4.分区(Partition)
一个主题可以有多个分区,一个分区只属于一个主题,分区可以分布在不同节点上,所以一个主题是可以分布在不同节点上的.
生产者发送消息可以指定发送至某个主题下的某个分区,如果未指定分区,分区器则会通过消息中的键来决定放在哪个分区
5.生产者(Producer)
生产者即负责生产消息的一方,比如在 A 系统需要同步一条订单数据到 B 系统时,生产者即将消息发送的 A 系统
6.消费者(Consumer)
消费者即订阅消息的一方,比如在 A 系统需要同步一条订单数据到 B 系统时,消费者即订阅消息的 B 系统
7.偏移量(offset)
在消息发送时就会分配一个特定的偏移量,该偏移量在分区里是唯一的,偏移量并不跨越分区,所以 Kafka 保证的是分区内有序而不是主题内有序.偏移量也可以理解为在该分区里是第几个消息的标识
8.Zookeeper
kafka 使用zookeeper做注册中心
kafka学习笔记一(kafka基本概念)
最新推荐文章于 2024-09-14 15:36:14 发布