kafka架构

kafka是什么?

kafka是一个分布式的消息系统(发布/订阅)

kafka的特点

  • 以时间复杂度为O(1)的方式提供消息持久化能力,即对TB级以上的数据进行访问也能达到常数时间复杂度的访问性能
  • 解耦
  • 顺序性:保证分区内有序
  • 可恢复性(容错性):部分组件的失效,不会导致影响整个系统
  • 异步通信:允许用户把消息发生到消息队列中,并不立即处理
  • 能同时实现离线和实时处理

kafka架构图

图画的有点丑,就将着看吧

kafka架构组件

producer

    生产者,向kafka服务器发布消息(采用push的方式将消息推送到broker)

broker

 kafka服务器,一个broker中可以有多个topic,一个topic中可以有多个partition

  • topic
    • partition
      • repica(副本):保障partition的高可用性
        • leader:producer/consumer只与leader交互;当leader宕机选举时,新的leader拥有旧leader commit过的所有消息
        • follower:从leader复制数据

consumer

    消费者,订阅broker中的topic,通过pull的方式获取消息。其API分为高级API和低级API

  • 高级API
    • 优点:写起来简单;不用自行管理offset,系统通过zookeeper自行管理(每次获取数据后,线程将自动提交offset到zookeeper)
    • 缺点:不能自由控制offset
  • 低级API
    • 优点:能自由控制offset
    • 缺点:写起来比较麻烦,容易出现重复消费等问题

consumer group

    由一个或多个consumer组成,当有consumer增加或减少时,会触发rebalance机制。

    一个partition只能被同一个group内的一个consumer消费,但多个group可以同时消费这个partition

zookeeper

    主要有两个作用:a. 存储集群meta信息;b. 监控集群状态

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值