【Kafka】Kafka基础概念笔记

这篇具有很好参考价值的文章主要介绍了【Kafka】Kafka基础概念笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Kafka】Kafka基础概念笔记

1. 两种模式

Kafka作为消息队列,有两种模式:

  1. 点对点模式
  2. 发布/订阅模式

1.1 点对点模式

特点:

  • 消费者主动拉取数据,消息收到后清除消息

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式


1.2 发布/订阅模式

  • 可以有多个topic主题(浏览、点赞、收藏、评论等)
  • 消费者消费数据之后,不删除数据
  • 每个消费者相互独立,都可以消费到数据

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式


2. 基础架构

Kafka的基础架构:

  1. 为方便扩展,并提高吞吐量,一个topic分为多个partition(分区)
  2. 配合分区的设计,提出消费者组的概念,组内每个消费者并行消费,一个分区只能由一个组内消费者消费,避免重复消费
  3. 为提高可用性,为每个partition增加若干副本
  4. Zookeeper中记录谁是leader,Kafka2.8.0以后也可以配置不采用ZK

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

  • Consumer Group(CG):消费者组,由多个consumer组成。消费者组内每个消费者负责消费不同分区的数据,为避免详消息的重复消费,一个分区只能由一个组内消费者消费;消费者组之间互不影响。所有消费者都属于某个消费者组,即消费者组是逻辑上的一个订阅者。
  • Broker:一台Kafka服务器就是一个broker。一个集群由多个broker组成。一个broker可以容纳多个topic。
  • Topic:可以理解为一个队列,生产者和消费者面向的都是一个topic
  • Partition:为了实现扩展性,一个非常大的 topic 可以分布到多个 broker (即服务器上),一个topic可以分为多个 partition,每个 partition 是一个有序的队列
  • Replica:副本。一个 topic 的每个分区都有若干个副本,一个 Leader 和若干个 Follower。
  • Leader:每个分区多个副本的“主”,生产者发送数据的对象,以及消费者消费数据的对象都是 Leader。
  • Follower:每个分区多个副本中的“从”,实时从 Leader 中同步数据,保持和 Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。

3. Topic命令行操作

3.1 查看 Topic 操作

①查看操作Topic命令参数

#在kafka的目录下
bin/kafka-topics.sh

输入该命令行后,控制台列出所有的参数及含义:

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

总结如下:

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式


3.2 创建 Topic

②创建一个名为first的topic,要求分区数为1,集群有3个节点,所以分区副本设置为3

bin/kafka-topics.sh --bootstrap-server node1:9092 --create --partitions 1 --replication-factor 3 --topic first

3.3 查看所有 Topic

③查看当前服务器中所有的topic

bin/kafka-topics.sh --bootstrap-server node1:9092 --list

3.4 查看 Topic 的详情

④查看 first 主题的详情

bin/kafka-topics.sh --bootstrap-server node1:9092 --describe --topic first

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

  • Replicas:1,2,0 表示副本分别存在三个节点中
  • Leader:1 表示Leader副本存储在代号为1的节点中,其余两个存的是Follower副本
  • Isr:1,2,0 表示同步副本,follower副本同步leader副本的数据,ISR是Kafka中用于保证数据一致性和可靠性的副本集合

3.5 修改分区数

⑤注意:分区数只能增加不能减少

bin/kafka-topics.sh --bootstrap-server node1:9092 --alter --partitions 3 --topic first

修改之后再次查看 first 主题的详情:

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式


3.6 删除 Topic

⑥删除 first 主题

bin/kafka-topics.sh --bootstrap-server node1:9092 --delete --topic first

4. 生产者命令行操作

4.1 生产者命令行操作

查看操作生产者命令参数

bin/kafka-console-producer.sh

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式


4.2 给 topic 发送消息

bin/kafka-console-producer.sh --bootstrap-server node1:9092 --topic first

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

向 first 主题发送了一条 hello world 消息。


5. 消费者命令行操作

5.1 查看操作消费者命令参数

bin/kafka-console-consumer.sh

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式


5.2 消费 topic 中的消息

消费 first 主题中的消息

bin/kafka-console.consumer.sh --bootstrap-server node1:9092 --topic first

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

我们发现光标一直在闪,却没有收到任何消息,那是因为kafka默认读取consumer脚本起来之后的消息,想要读取所有数据(包含历史数据)就要加上 --from-beginning 参数

bin/kafka-console-consumer.sh --bootstrap-server node1:9092 --from-beginning --topic first

【Kafka】Kafka基础概念笔记,中间件,kafka,笔记,分布式

这样就把历史数据也给读出来了。文章来源地址https://www.toymoban.com/news/detail-538558.html


到了这里,关于【Kafka】Kafka基础概念笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 消息中间件 —— 初识Kafka

    1.1.1、为什么要有消息队列? 1.1.2、消息队列 消息 Message 网络中的两台计算机或者两个通讯设备之间传递的数据。例如说:文本、音乐、视频等内容。 队列 Queue 一种特殊的线性表(数据元素首尾相接),特殊之处在于只允许在首部删除元素和在尾部追加元素(FIFO)。 入队、出

    2024年02月13日
    浏览(51)
  • 中间件(三)- Kafka(二)

    6.1 Kafka的高效读写 顺序写磁盘 Kafka的producer生产数据,需要写入到log文件中,写的过程是追加到文件末端,顺序写的方式,官网有数据表明,同样的磁盘,顺序写能够到600M/s,而随机写只有200K/s,这与磁盘的机械结构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时

    2024年02月07日
    浏览(38)
  • 大数据中间件——Kafka

    Kafka安装配置 首先我们把kafka的安装包上传到虚拟机中: 解压到对应的目录并修改对应的文件名: 首先我们来到kafka的config目录,我们第一个要修改的文件就是server.properties文件,修改内容如下: 主要修改三个部分,一个是唯一标识id,kafka的文件存储路径,一个是zookeeper的节

    2024年02月07日
    浏览(43)
  • 中间件: Kafka安装部署

    下载二进制包 修改配置 启动 按照单机部署方式启动多个Zookeeper与broker节点。 修改config/server.properties配置: broker.id 每个节点唯一 zookeeper.connect: 改成zookeeper节点 查看集群状态:

    2024年02月12日
    浏览(42)
  • 消息中间件(二)——kafka

    在大数据中,会使用到大量的数据。面对这些海量的数据,我们一是需要做到能够 收集 这些数据,其次是要能够 分析和处理 这些海量数据。在此过程中,需要一套消息系统。 Kafka专门为分 布式高吞吐量 系统设计。作为一个消息代理的替代品,Kafka往往做的比其他消息中间

    2024年02月07日
    浏览(56)
  • 消息中间件之Kafka(二)

    1.1 为什么要对topic下数据进行分区存储? 1.commit log文件会受到所在机器的文件系统大小的限制,分区之后可以将不同的分区放在不同的机器上, 相当于对数据做了分布式存储,理论上一个topic可以处理任意数量的数据 2.提高并行度 1.2 如何在多个partition中保证顺序消费? 方案一

    2024年01月21日
    浏览(47)
  • 消息中间件之Kafka(一)

    高性能的消息中间件,在大数据的业务场景下性能比较好,kafka本身不维护消息位点,而是交由Consumer来维护,消息可以重复消费,并且内部使用了零拷贝技术,性能比较好 Broker持久化消息时采用了MMAP的技术,Consumer拉取消息时使用的sendfile技术 Kafka是最初由Linkedin公司开发,

    2024年01月20日
    浏览(49)
  • 中间件上云部署 kafka

    Apache Kafka是一种流行的分布式流式消息平台。Kafka生产者将数据写入分区主题,这些主题通过可配置的副本存储到broker群集上。 消费者来消费存储在broker的分区生成的数据。 storageclass ingress 创建topic 创建数据生产者,添加数据 在当前终端或另一个终端中创建数据消费者,消

    2024年02月16日
    浏览(38)
  • 【Java面试丨消息中间件】Kafka

    1. 介绍 使用kafka在消息的收发过程都有可能会出现消息丢失 (1)生产者发送消息到broker丢失 (2)消息在broker中存储丢失 (3)消费者从broker接收消息丢失 2. 生产者发送消息到broker丢失 设置异步发送:同步发送会发生阻塞,一般使用异步发送方式发送消息 消息重试:由于网

    2024年02月11日
    浏览(42)
  • 【Kafka】Ubuntu 部署kafka中间件,实现Django生产和消费

    原文作者 :我辈李想 版权声明 :文章原创,转载时请务必加上原文超链接、作者信息和本声明。 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入

    2024年02月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包