Kafka基础----架构

Kafka基础架构

在这里插入图片描述

  • Producer:消息生产者,就是向Kafka broker发消息的客户端
  • Consumer:消息消费者,向Kafka broker取消息的客户端
  • Cluster:集群
  • Broker(装载了kafka节点的服务器):一台Kafka服务器就是一个broker。一个集群又多个broker组成。一个broker可以容纳多个topic
  • Partition: 为了实现拓展性,一个非常强大的topic可以分布到多个broker(服务器)上,一个topic可以分为多个partition,每个partition都是一个有序的队列
  • Topic(主题):用与消息的分类,可以理解为一个队列,生产者和消费者面向的都是一个topic
  • Replica:副本,为保证集群中的某个节点发生故障时,该节点的partition数据不丢失,且Kafka仍能够继续工作,kafka提供了副本机制,一个topic的每一个分区都有若干个副本,一个leader和若干个follower。
  • Replication:复制

Zookeeper

  • 其中的底层中有类似taildir功能的断点续传功能
  • 0.9版本之前当消息在broker中传递时将其传输时的数据偏移量写在zookeeper实现断点续传功能(注册信息)
  • 0.9版本之后将数据的偏移量存储在kafka中系统维护的文件中

offset:记载偏移量,将偏移量存储到磁盘中,(默认)在等待7天后销毁,在配置文件中进行更改存储时间


  1. 当有消息从ProduerA消息生产者生产出一个消息时
  2. 首先他将信息发送给每个服务器中的leader
  3. 集群中的每个leader将数据在follower进行同步
  4. 然后将leader中的数据发送到Consumer A
  5. 或将数据发送到不是与Consumer A同组的Consumer C中进行消费
  6. 每个broker内的消息只能让Consumer Group中的一个Consumer进行消费,不可以让同Group的消费者进行消费
  7. 将整个Consumer组当做一个Java的一个并发进程来看待
  8. 如果当前组内只有一个消费者 那一个消费者将消费两个不同broker传来的消息
  9. 这时对Consumer Group来说将会提高消费者消费的能力
  10. 所以并发度最好的时候就是在Consumer Group中的Consumer数量与分区数相等时
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值