美文网首页
KafKa入门

KafKa入门

作者: hipeer | 来源:发表于2018-10-17 10:45 被阅读0次

kafka

Apache kafka是用Scala语言编写的高吞吐量,分布式的发布-订阅消息传递系统。由于它具有更高的吞吐量、可靠性和复制性,所以经常用来代替JMS和AMQP等传统消息代理,

kafka特点

  • 高吞吐量
    一个Kafka代理可以每秒处理数千个客户端的数百兆读写

  • 持久性
    消息被持久化到本地磁盘,并且支持数据备份防止数据丢失

  • 分布式
    数据副本冗余、流量负载均衡、可扩展

  • 实时性
    在系统之间构建实时数据流管道

kafka 架构及核心概念

一个典型的Kafka集群中包含若干Producer,若干broker(broker数量越多,集群吞吐率越高),若干Consumer Group,以及一个Zookeeper集群。Kafka通过Zookeeper管理集群配置,选举leader,在消费组发生变化时进行rebalance(新版本不依赖)。Producer使用push模式将消息发布到broker,Consumer使用pull模式从broker订阅并消费消息。

  • Broker
    Kafka集群包含一个或多个服务器,这种服务器被称为broker;

  • Message
    消息是Kafka中最基本的数据单元,主要有key和value构成;真正有效的是消息是value数据,key只是作为消息路由分区使用;

  • Topic
    每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数 据而不必关心数据存于何处),强调的是kafka不保证topic消息有序;

  • Partition
    Parition是物理上的概念,每个Topic包含一个或多个Partition;kafka只保证一个partiton是有序的;通过配置来设置partition中的文件大小和文件保留策略;

  • Producer
    负责发布消息到Kafka broker;

  • Consumer
    消息消费者,向Kafka broker读取消息的客户端;

  • Consumer Group
    官方称为逻辑上的订阅者,每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group),消息的单播和多播都是基于消费组来实现的,消费组中的消费者不是越多越好,消费者数量超过分区数量时,回导致消费者分配不到资源,造成资源浪费;

  • Offset
    每个partition都由一系列有序的、不可变的消息组成,这些消息被连续的追加到partition中。partition中的每个消息都有一个连续的序列号叫做offset,用于partition唯一标识一条消息。

kafka高吞吐量和低延迟的原因

  • kafka的生产者和消费者均支持批量处理数据,指定缓存的消息达到某个量的时候就发出去,这大大减少了网络开销。
  • 数据以追加的方式写入磁盘
  • 使用sendfile实现零拷贝I/O
  • 在一个消费者与生产者大致处于同一水平的系统中,它基本上是从缓存中读取数据,这使得端到端延迟非常低

相关文章

  • Kafka视频集

    kafka企业级入门实战完整版 Kafka系列教程 Kafka入门 分布式消息通信Kafka原理剖析 阿里架构师直...

  • 再看kafka——spring boot集成kafka

    之前自己写过一篇入门文章kafka简单入门及与spring boot整合,主要是结合kafka官方的文档入门,学习...

  • Kafka学习

    MQ入门总结(六)Kafka的原理和使用 Kafka的架构原理,你真的理解吗? 真的,Kafka 入门一篇文章就够...

  • Kafka快速开始

    入门 1.简介 Kafka is a distributed streaming platform,kafka是一...

  • 【kafka】为什么要学习Kafka?

    KAFKA官方文档入门指南 http://ifeve.com/kafka-1 为什么要学习Kafka? http:...

  • (3)kafka的安装部署以及基本操作

    1.kafka 的安装部署 可以去看kafka的快速入门:http://kafka.apache.org/quic...

  • kafka入门

    Apache Kafka 入门 1.kafka简介和产生的背景 什么是 Kafka Kafka 是一款分布式消息发...

  • kafka极简入门(四)--常用配置

    回顾:kafka极简入门(三)--创建topic 前言 kafka针对broker, topic, produce...

  • kafka极简入门(二) --安装

    回顾kafka极简入门(一) --简介 1.单机版kafka安装 kafka需要结合zookeeper使用,所以本...

  • Kafka入门

    Kafka官网:http://kafka.apache.org/入门1.1 介绍Kafka™ 是一个分布式流处理系...

网友评论

      本文标题:KafKa入门

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