Kafka基础----架构

Kafka基础架构

Kafka基础----架构_第1张图片

  • 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数量与分区数相等时

你可能感兴趣的:(#,Kafka,1024程序员节)