美文网首页
Kafka 概述

Kafka 概述

作者: DongGuangqing | 来源:发表于2016-11-10 22:36 被阅读38次

Kafka 能用来干嘛?

  • 消息队列
  • 实时数据处理, 流式处理(一般结合storm)
  • 日志聚合等

Kafka 架构

Kafka 宏观架构.png

Producer集群通过zookeeper(实际中写的是broker list)获取所写topic对应的partition列表,然后顺序发送消息(支持自己实现分发策略),broker集群负责消息的存储和传递,支持Master Slaver模型,可分布式扩展;Consumer集群从zookeeper上获取topic所在的partition列表,然后消费,一个partition只能被一个consumer消费。Name Server集群(一般是zookeeper)提供名称服务等协调信息。

Topic

Topic是生产者生产、消费者消费的队列标识。一个Topic由一个或多个partition组成,每个partition可以单独存在一个broker上,消费者可以往任一partition发送消息,以此实现生产的分布式,任一partition都可以被且只被一个消费者消息,以此实现消费的分布式;因此partition的设计提供了分布式的基础。

Topic.png

同时,从上图我们也能发现这种设计还有一个优点,因为每个partition内的消息是有序的,而一个partition只能被一个消费者消费,因此Kafka能提供partition层面的消息有序,而传统的队列在多个consumer的情况下是完全无法保证有序的。

消息传递模型

使用消费者组的概念,一个消息可以被多个消费者组消费,但是只能被一个消费者组里的一个消费者消费,这样当只有一个消费者组时就等同与P2P模型,当存在多个消费者组时就是PUB/SUB模型。

消费者组.png

消息持久化

Kafka直接使用页面缓存, 线性写入(linear write),以此可同时支持在线和离线的消费。每个消费者自己维护当前读取数据的offset(也可委托给zookeeper)

Push or Pull

对于消息的消费,ActiveMQ使用PUSH模型,而Kafka使用PULL模型,两者各有利弊,对于PUSH,broker很难控制数据发送给不同消费者的速度,而PULL可以由消费者自己控制,但是PULL模型可能造成消费者在没有消息的情况下盲等,这种情况下可以通过long polling机制缓解,而对于几乎每时每刻都有消息传递的流式系统,这种影响可以忽略。

Ref: http://blog.csdn.net/mengxianhua/article/details/43968429/

相关文章

  • 六、Kafka Streams

    6.1 概述 6.1.1 Kafka Streams Kafka Streams。Apache Kafka开源项目...

  • KAFKA基础

    KAFKA概述 !/bin/bash /home/jmsops/app/kafka/bin/kafka-serve...

  • Kafka原理

    Kafka概述 Kafka构架 Kafka的Partition log是如何工作的? Kafka的Consumer...

  • 分布式消息队列 Kafka

    目录 Kafka概述

  • Spark Streaming实时流处理-3.分布式消息队列Ka

    0. 目录 Kafka概述 Kafka架构及核心概念 Kafka部署及使用 Kafka容错性测试 Kafka AP...

  • KafkaProducer

    Kafka源码阅读(一):Kafka Producer整体架构概述及源码分析 zqhxuyuan Kafka源码分...

  • Kafka 概述

    Kafka架构 Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker Topic:每条发...

  • Kafka 概述

    Kafka 能用来干嘛? 消息队列 实时数据处理, 流式处理(一般结合storm) 日志聚合等 Kafka 架构 ...

  • Kafka概述

    什么是kafka Kafka官网介绍kafka是一个分布式的流平台。 可以让你发布和订阅流式的记录。这一方面与消息...

  • Kafka 概述

    接触Kafka之前需要首先理解几个概念。 0、分布式系统 比较常见的概念:建立在计算机网络之上的软件系统,若干独立...

网友评论

      本文标题:Kafka 概述

      本文链接:https://www.haomeiwen.com/subject/lcgxpttx.html