kafka学习第一天---kafka基本术语,概念

Kafka是一个高度可扩展的消息系统。
什么是消息队列?
从字面理解,他是一个对列,有着先入先出(FIFO)的特性。主要应用于不同线程,进程之间的通信,用来处理一系列的输入请求。
消息队列采用异步处理请求。消息的发送者和接收者无需同时与消息队列进行数据交互,消息会一直保存在队列中,直至被接收者读取。
消息队列的作用:
1.应用解耦----->图片上传,人脸识别系统
2.异步处理----->注册账号,短信激活,邮箱激活
3.数据限流----->“秒杀活动”
4.消息通信----->聊天室
基本术语:
1.代理(Broker)
在kafka集群中,一个kafka进程(实例)被称之为一个代理节点。
2.生产者(Producer)
Producer将消息记录发送到kafka集群指定的主题(Topic)中进行存储,同时生产者(Producer)也能通过自定义算法决定将消息发送到哪个分区(Patition)。
3.消费者(Consumer)
消费者决定从kafka集群指定的主题(Topic)中读取消息记录。
在读取主题数据时,需要设置消费组名(GroupId),如果不设置,则kafka消费者会默认生成一个消费者名称。
3.消费者组(Consumer Group)
消费者程序在读取kafka系统主题(Topic)中的数据时,通常会使用多个线程执行。
一般,一个消费者对应一个线程。
再给应用程序设置线程数量时,遵循“线程数小于分区数”的原则。
如果线程数大于分区数,则多余的线程不会消费分区中的数据,这样会造成资源浪费。
4.主题(Topic)
Kafka系统通过主题来区分不同业务类型的消息记录。
5.分区(Partition)
每个主题(Topic)中可以有一个或者多个的分区
在kafka系统的设计思想中,分区是基于物理层面上的。
不同的分区对应着不同的数据文件。
Kafka通过分区来支持物理层面上的并发读写,从而提高kafka的吞吐量
每个分区的内部的消息记录是有序的,每个消息都有一个连续的偏移量序号(offset)
一个分区只对应一个代理节点(Broker),一个代理节点可以管理多个分区。
6.副本
在kafka系统中,每个主题(Topic)在创建时会被要求指定它的副本数,默认为1.
通过副本机制来保证kafka分布式集群的高可用性。
通常情况下,当集群数量大于等于3时,为了保证集群的数量不丢失,将副本数设置为3.
当集群数为1时,副本系数只能为1.
7.记录(Record)
被实际写入到kafka集群中并且可以被消费者应用程序读取的数据
每一个记录包含一个键(key),值(value),时间戳(Time Stamp)

发布了23 篇原创文章 · 获赞 10 · 访问量 4689

猜你喜欢

转载自blog.csdn.net/ming_zi_hao_nan_a/article/details/100521079
今日推荐