Kafka学习笔记

4 篇文章 0 订阅
4 篇文章 0 订阅

Kafaka 基本概念

  • 物理概念

  • 逻辑概念

  1. Producer:消息和数据的生产者,向Kafka的一个topic发布消息的进程/代码/服务
  2. Consumer:消息和数据的消费者,订阅数据(Topic)并且处理其发布的消息的进程/代码/服务
  3. Consumer Group:逻辑概念,对于一个topic,会广播给不同的group,一个group中只有一个consumer可以消费该消息。
  4. Broker:物理概念,Kafka集群中的每个Kafka节点
  5. Topic:逻辑概念,Kafka消息的类别,对数据进行分区,隔离
  6. Partition:物理盖帘,Kafka下数据存储的基本单元。一个Topic的数据,会被分散的存储到多个Partition,每一个Partition是***有序***的。
  7. Replication:(副本)同一个Partition可能会有多个Replication,多个Replication之间的数据是一样的。
  8. Replication Leader:一个Partition的多个Repliaction上,需要一个Leader负责该Partition上与Producer和Consumer交互
  9. ReplicaManager:负责管理当前Broker所有分区和副本的信息,处理KafkaController发起的一些请求,副本状态的切换添加/读取消息等

Kafka概念延伸

Partition

  • 每一个Topic被切分为多个Partitions
  • 消费者数目少于或等于Partition的数目(每一个消费者会消费一个Partition)
  • Broker Group中的每一个Broker保存Topic的一个或多个Partition
  • Consumer group中的仅有一个Consumer读取Topic的一个或多个Partitions,并且是唯一的Consumer

Replication

  • 当前集群中有Broker挂掉的时候,系统可以主动地是Replicas提供服务
  • 系统默认设置一个Topic的replication的系数为1,可以在创建Topic是单独设置

Replication的特点

  • Replication的基本单位是Topic的partition
  • 所有的读和写都从Leader进,Followers只是做为备份
  • Follower必须能够及时复制Leader的数据
  • 增加容错性和可扩展性

Kafka的基本结构

在这里插入图片描述

  • Producer Api
  • Consumer Api
  • Connector Api
  • Stream Api
    在这里插入图片描述

Kafka的消息结构

1554960284200

  • 当前消息偏移量
  • 消息长度
  • 检验字段,校验当地信息的完整性
  • 魔数 判断是不是Kafka消息
  • 可选 消息属性
  • 时间戳
  • Key的长度
  • Key值
  • Value的长度
  • Value的值

Kafka的特点

分布式

  • 多分区
  • 多副本
  • 多订阅者
  • 基于Zookeeper调度

高性能

  • 高吞吐量
  • 低延迟
  • 高并发
  • 时间复杂度为O(1)

持久性与扩展性

  • 数据可持久化
  • 容错性(多副本,Group等技术)
  • 支持在线水平扩展
  • 消息自动平衡(意味着避免在服务端消息过分集中在几台机器,造成热点问题)

Kafka的应用场景

  • 消息队列
  • 行为跟踪(比如跟踪用户浏览行为等)
  • 元信息监控(比如记录一些操作信息)
  • 日志收集(类似Euraka的功能,以消息流的形式在系统流通,与传统文件不同)
  • 流处理
  • 事件源(按状态转移记录事件转移顺序)
  • 持久性日志(commit log)

Kafka的简单案例

  • 环境启动
  • 简单生产者
  • 简单消费者

Kafka的下载与安装

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值