美文网首页
Kafka学习笔记

Kafka学习笔记

作者: Andytl的世界 | 来源:发表于2020-01-13 07:52 被阅读0次

《kafka快速学习入门与实践》

第一讲,Kafka术语

知乎上文章简单解释了为什么要用消息中间件,为了解耦消息(数据)的生产和消费。kafka是分布式消息引擎,提供一套完备的消息发布与订阅解决方案。

发布订阅的对象是主题(Topic)。

向主题发布消息的客户端应用程序称为生产者(Producer)。

订阅这些主题消息的客户端应用程序就被称为消费者(Consumer)。

一个 Kafka 集群由多个Broker 组成,Broker 负责接收和处理客户端发送过来的请求,以及对消息进行持久化。

实现高可用的另一个手段就是备份机制(Replication)。备份的思想很简单,就是把相同的数据拷贝到多台机器上,而这些相同的数据拷贝在 Kafka 中被称为副本(Replica)。

Kafka 定义了两类副本:领导者副本(Leader Replica)和追随者副本(Follower Replica)。前者对外提供服务,这里的对外指的是与客户端程序进行交互;而后者只是被动地追随领导者副本而已,不能与外界进行交互。

有了副本机制可以保证数据的持久化或消息不丢失,但没有解决伸缩性的问题,通过把数据分割成多份保存在不同的 Broker 上,实现分区(Partitioning)。

Kafka Broker 是如何持久化数据的。总的来说,Kafka 使用消息日志(Log)来保存数据,一个日志就是磁盘上一个只能追加写(Append-only)消息的物理文件。

两种消息模型,即点对点模型(Peer to Peer,P2P)和发布订阅模型。这里面的点对点指的是同一条消息只能被下游的一个消费者消费,其他消费者则不能染指。 Kafka 中实现这种 P2P 模型的方法就是引入了消费者组(Consumer Group)。所谓的消费者组,指的是多个消费者实例共同组成一个组来消费一组主题。这组主题中的每个分区都只会被组内的一个消费者实例消费,其他消费者实例不能消费它。

《Kafka快速入门与实践》

第二讲,Kafka版本

Kafka已经不再单纯是消息引擎,有些版本还添加了流处理功能。要了解Kafka的版本,可以类比参考linux的发行版本,CentOS、Ubantu、RedHat等。主流的Kafka版本有,Apache Kafka,Confluent Kafka,CDH Kafka。

1.Apache Kafka

最正宗的开源Kafka,其他版本是以这个版本为基础的。社区活跃度很高,问题能及时解决,但只有Kafka的基础功能。

2.Confluent Kafka

提供了Apache Kafka没有的高级特性,但使用人数少,资料少。

3.CDH Kafka

CDH中封装了Apache Kafka,操作通过UI界面,方便易用。但是封装后对底层缺乏掌控。有滞后性,要跟随CDH版本升级来升级Kafka。

《Kafka快速入门与实践》

第三讲,部署规划

只有单台机器构成的 Kafka 伪集群只能用于日常测试之用,根本无法满足实际的线上生产需求。而真正的线上环境需要仔细地考量各种因素,结合自身的业务需求而制定。

1.操作系统

考虑到IO模型,数据传输效率,生产环境使用Linux。Windows一般用来测试。

2.磁盘

Kafka对磁盘是顺序读写,规避了机械硬盘随机读写慢的缺点采用机械硬盘就可以满足。Kafka已经有备份机制,磁盘的RAID不重要。

3.磁盘容量

需要考虑消息数、留存时间、消息大小、备份数、压缩比

4.带宽

带宽容易产生瓶颈,考虑冗余。

相关文章

  • sptest

    # Spring Kafka 学习笔记 ## 1 接收消息 接收消息需要提供MessageListenerCont...

  • kafka学习系列

    Kafka学习总结(一)——Kafka简介 Kafka学习总结(二)——Kafka设计原理 Kafka学习总结(三...

  • kafka学习笔记-kafka基础

    参考:极客时间-Kafka核心技术与实战 kafka术语 消息(Record):kafka要处理的主要对象。 主题...

  • spark 学习笔记

    Spark学习笔记 Data Source->Kafka->Spark Streaming->Parquet->S...

  • kafka学习笔记

    1、kafka 简介 kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理百万级QPS(每秒访问次数)的动...

  • Kafka学习笔记

    定义: Kafka 是一款开源的、轻量级的 、分布式、可分区和具有复制备份的 CReplicated)、基于Zoo...

  • Kafka 学习笔记

    Kafka概述 官网 和消息系统类似 Kafka架构 单节点,单broker的部署及使用 配置 启动 创建topi...

  • Kafka 学习笔记

    一、Kafka简介 Kafka (科技术语)。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规...

  • Kafka学习笔记

    Kafka 学习笔记 内容大部分引用自Info - Apache Kafka:下一代分布式消息系统 原文作者Abh...

  • kafka学习笔记

    一、环境变量设置 1. 设置JAVA环境变量 修改/etc/profile配置,添加以下信息 2. 设置kafka...

网友评论

      本文标题:Kafka学习笔记

      本文链接:https://www.haomeiwen.com/subject/jvhgactx.html