Kafka学习-基本概念

Kafka 是什么?主要应用场景有哪些?

Kafka是一个消息引擎,和一个分布式的流处理平台。
应用场景:1. 消息队列,提供应用程序之间的通信。2,数据处理。

Kafka相关术语

Topic:主题,生产者发布消息到特定的主题,生产者订阅这个主题获取消息
Producer:生产者,生产消息
Consumer:消费者,消费消息
Broker:一个kafka集群由多个broker组成,broker负责接收客户端(消费者和生产者都是)的请求。
Parition:分区,一个Topic有多个分区,并且同一个Topic的不同分区可以部署到不同的broker中。

Kafka中传输的对象是消息。如何传输消息是消息的发布/订阅模型。

消息传输模型:

  1. 点对点:系统A发送的消息只能被系统B接收
  2. 发布/订阅:有一个主题 Topic概念、生产者 Producer 、 消费者 Consumer。生产者将消息发布到 Topic ,消费者去接收。对于一个Topic可以有多个生产者和多个消费者。

点对点如何实现:采用一个消费者组订阅同一个主题组。主题组内每个分区只能被消费者组内一个消费者消费。

高可用:集群中有多个broker可以部署到不同的服务器上面。数据有备份机制(Replication)

三层消息架构

一条数据的写入:会写入一个Topic下的一个分区中,这个分区就是一个消息日志。使用一个分区位移offset来表示数据位置。日志就是一个物理日志,采用的是追加写,也就是顺序写。

  1. 主题层:每个主题可以配置M个分区。每个分区又可以部署N个副本
  2. 分区层:每个分区只有一个副本可以为leader副本,其余都是follow副本。
  3. 消息层:分区中包含若干消息,每条消息从位移0开始,递增写入。
  4. 客户端只能和领导者副本交互

日志持久化策略

日志对应着物理日志,采用追加写。避免了磁盘的随机写。避免日志使用完,会有定期删除。一个日志细分为多个日志段,日志段写满之后就会切出在新的日志段写。会定期判断日志段是否可回收。

数据备份机制(多副本机制)

是什么:
在一个Topic的分区中的一份数据有多个副本。其中仅有一个是leader副本,其余的是follow副本。只有leader副本具有数据的读写功能,其余副本只能同步leader副本的数据。仅仅保证数据存储的安全性

好处:
多分区:一个Topic的分区可以在不同的broker中,提供较好的并发能力,负载均衡。
多副本:减少了数据丢失的可能。leader副本丢了,还可以从follow副本中重新选举。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值