Kafka(1)——简介

1. 消息系统分类

  • Peer-to-Peer

    • 一般基于 pull 或者 poll 接收消息
    • 发送到队列中的消息被一个而且仅仅一个接收者所接收,即使有多个接收者再同一个队列中侦听同一个消息
    • 即支持异步“及发即弃”的消息传送方式,也支持同步请求/应答传送方式
  • 发布/订阅

    • 发布到一个主题的消息,可被多个订阅者所接收
    • 发布/订阅即可集与 Push 消费数据,也可集与 pull 或者 Poll 消费数据
    • 解耦能力比P2P模型更强

    在这里插入图片描述

2. 消息系统适用场景

  • 解耦

    • 各个系统之间通过消息系统这个统一的接口交换数据, 无需了解彼此的存在
  • 冗余

    • 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险
  • 扩展

    • 消息系统是统一的数据接口,各个系统可独立扩展
  • 峰值处理能力

    • 消息系统可顶住峰值流量,业务系统可根据处理能力从消息系统中获取并处理对应量的请求
  • 可恢复性

    • 系统中部分组件失效并不会影响整个系统,它回复后仍然可从消息系统中获取并处理数据
  • 异步通信

    • 再不需要立即处理请求的场景下,可以将请求放入消息系统,合适的时候再处理

3. Kafka 设计膜裱

  • 高吞吐率
    • 在廉价的商用机器上单机可支持每秒100万条消息的读写
  • 消息持久化
    • 所有消息均被持久化到磁盘,无消息丢失,支持消息重发
  • 完全分布式
    • Producer、Broker、Consumer 均支持水平扩展
  • 同时适应在线流处理和离线批处理

4. Kafka 架构

在这里插入图片描述

4.1 Topic 与 Partition
  • Topic

    • 逻辑概念,同一个Topic的消息可分布在一个或者多个节点(Broker)上
    • 一个Topic包含一个或者多个Partition
    • 每条消息都属于且仅属于一个Topic
    • Producer发布数据时,必须指定将该消息发布到哪一个Topic
    • Consumer订阅消息时,也必须指定订阅哪一个Topic的消息
  • Partition

    • 物理概念,一个Partition只分布于一个Broker上(不考虑备份)
    • 一个Partition物理上对应一个文件夹
    • 一个Partition包含多个Segment(Segment对用户透明)
    • 一个Segment对应一个文件
    • Segment由一个个不可变记录组成
    • 记录只会被append到Segment中,不会被单独删除或者修改
    • 清除过期日志时,直接删除一个或者多个Segment

5. Sync Producer 与 Async Producer

  • Sync Producer

    • 低延迟
    • 低吞吐率
    • 无数据丢失
  • Async Producer

    • 高延迟
    • 高吞吐率
    • 可能会有数据丢失
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值