Kafka简介

Kafka原理

Kafka使用

Kafka简介

概念

  • 基于发布/订阅的分布式消息系统
  • 由Linkedin开发,用Scala语言编写

特性

  • 消息持久化:采用时间复杂度O(1)的磁盘存储结构,即使TB级以上数据也能保证常数时间的访问速度
  • 高吞吐:即使在廉价的商用机器上,也能达到单机每秒10万条消息的传输
  • 高容错:多分区多副本
  • 易扩展:新增机器,集群无需停机,自动感知
  • 同时支持离线、实时数据处理

Kafka原理

基本概念

  • Broker(代理)

    • Kafka的一个实例或节点,一个或多个Broker组成一个Kafka集群
  • Topic(主题)
    • Topic是Kafka中同一类数据的集合,相当于数据库中的表
    • Producer将同一类数据写入同一个Topic,Consumer从同一个Topic中读取同类数据
    • Topic是逻辑概念,用户只需指定Topic就可以生产或消费数据,不必关心数据存于何处
  • Partition(分区)
    • 分区是一个有序的、不可修改的消息队列,分区内消息有序存储
    • 一个Topic可分为多个分区,相当于把一个数据集分成多份,分别存储不同的分区中
    • Partition是物理概念,每个分区对应一个文件夹,其中存储分区的数据和索引文件
  • Replication(副本)
    • 一个分区可以设置多个副本,副本存储在不同的Broker中
  • Producer(消息生产者)
    • 向Broker发布消息的客户端
  • Consumer(消息消费者)
    • 从Broker消费消息的客户端
  • Consumer Group(CG,消费者组)
    • 每个Consumer都隶属于一个特定的CG
    • 一条消息可以发送给多个不同的CG,但一个CG中只能有一个Consumer读取该消息
  • Zookeeper
    • Kafka将元数据保存在Zookeeper中
    • 负责Kafka集群管理,包括配置管理、动态扩展、Broker负载均衡、Leader选举,以及Consumer Group变化时的Rebalance等

工作机制

  • 消息在Broker中按Topic(主题)进行分类,相当于为每个消息打上标签
  • 一个Topic可划分为多个Partition(分区)
  • 每个Partition可以有多个Replication(副本)
  • 消息存储在Broker的某一Topic的某一Partition中,同时存在多个副本
  • Partition是一个FIFO队列,写入消息采用在队列尾部追加的方式,消费消息采用在队列头部顺序读取的方式
  • 一个Topic可分为多个Partition,仅保证同一分区内消息有序存储,不保证Topic整体(多个分区之间)有序

Kafka使用

— EOF —

Kafka - 分布式消息队列的更多相关文章

  1. 【转】快速理解Kafka分布式消息队列框架

     from:http://blog.csdn.net/colorant/article/details/12081909 快速理解Kafka分布式消息队列框架 标签: kafkamessage que ...

  2. Kafka 分布式消息队列介绍

    Kafka 分布式消息队列 类似产品有JBoss.MQ 一.由Linkedln 开源,使用scala开发,有如下几个特点: (1)高吞吐 (2)分布式 (3)支持多语言客户端 (C++.Java) 二 ...

  3. Kafka分布式消息队列

    基本架构 Kafka分布式消息队列的作用: 解耦:将消息生产阶段和处理阶段拆分开,两个阶段互相独立各自实现自己的处理逻辑,通过Kafka提供的消息写入和消费接口实现对消息的连接处理.降低开发复杂度,提 ...

  4. 快速理解Kafka分布式消息队列框架

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ ==是什么 == 简单的说,K ...

  5. kafka分布式消息队列介绍以及集群安装

    简介 首先简单说下对kafka的理解: 1.kafka是一个分布式的消息缓存系统: 2.kafka集群中的服务器节点都被称作broker 3.kafka的客户端分为:一是producer(消息生产者) ...

  6. [转载] 快速理解Kafka分布式消息队列框架

    转载自http://blog.csdn.net/xiaolang85/article/details/18048631 ==是什么 == 简单的说,Kafka是由Linkedin开发的一个分布式的消息 ...

  7. kafka分布式消息队列 — 基本概念介绍

    [http://www.inter12.org/archives/818] 这个应该算是之前比较火热的词了,一直没时间抽出来看看.一个新东西出来,肯定是为了解决某些问题,不然不会有它的市场.先简单看下 ...

  8. Apache Kafka 分布式消息队列中间件安装与配置 转载

    bin/zkServer.sh start /home/guym/down/kafka_2.8.0-0.8.0/config/zookeeper.properties& bin/kafka-s ...

  9. 在Centos 7上安装配置 Apche Kafka 分布式消息系统集群

    Apache Kafka是一种颇受欢迎的分布式消息代理系统,旨在有效地处理大量的实时数据.Kafka集群不仅具有高度可扩展性和容错性,而且与其他消息代理(如ActiveMQ和RabbitMQ)相比,还 ...

  10. 分布式消息队列 Kafka

    分布式消息队列 Kafka 2016-02-25 杜亦舒 Kafka是一个高吞吐量的.分布式的消息系统,由Linkedin开发,开发语言为scala具有高吞吐.可扩展.分布式等特点 适用场景 活动数据 ...

随机推荐

  1. RabbitMQ快速入门 整合 SpringBoot

    RabbitMQ快速入门 整合 SpringBoot 概述 大多应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦能力.流量削峰 消息服务中两个重要概念: 消息代理(`message broke ...

  2. 中电金信:四川农担X中电金信大数据智能风控平台 护航金融服务乡村振兴

    ​高质量金融服务是乡村振兴的重要支撑.四川省农业融资担保有限公司(以下简称"四川农担")持续探索融资担保服务,努力满足"三农"领域多样化.多层次融资担保需求的同 ...

  3. 在 d2js 使用多种数据源如spring数据源

    不少人误以为 d2js 只能通过 database.js 指定一个数据库,是一个单数据库方案.实际上 d2js 也可以使用多个数据库. 在 WEB-INF/jslib/d2js/base.js 的末尾 ...

  4. TypeScript 源码详细解读(2)词法1-字符处理

    本节文章研究的代码位于 tsc/src/compiler/scanner.ts 字符 任何源码都是由很多字符组成的,这些字符可以是字母.数字.空格.符号.汉字等-- 每一个字符都有一个编码值,比如字符 ...

  5. MySQL的 安装、配置、卸载

    Mysql的安装配置(基于Centos7) 安装mysql数据库 [root@master ~]# wget https://dev.mysql.com/get/mysql57-community-r ...

  6. 执行docker-compose up -d时出现ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule

    原因是因为防火墙关闭之后需要重启docker服务. 执行: service docker restart 即可.

  7. Qt开源作品18-无边框背景透明窗体

    一.前言 用Qt来做无边框北京透明窗体非常简单,根本不需要用什么系统层的API来实现透明什么的,Qt本身提供了很多种设置窗体透明的方法,除了可以设置窗体的属性为透明以外,还可以设置透明度函数,以及qs ...

  8. Qt音视频开发30-Onvif事件订阅

    一.前言 能够接收摄像机的报警事件,比如几乎所有的摄像机后面会增加报警输入输出接口,如果用户外接了报警输入,则当触发报警以后,对应的事件也会通过onvif传出去,这样就相当于兼容了所有onvif摄像机 ...

  9. [转]Ceres求解优化问题

    1. 简介Ceres Solver是专门用于求解非线性最小二乘问题的C++开源库,研究SLAM方向不过滤波和优化两个技术路线,因此常用Ceres库解决实际项目中的优化问题,当然还有g2o同样可用,但就 ...

  10. WorldWind源码剖析系列:WorldWind中的LOD技术

    1. 基本概念: World Wind Tile Structure:是指WW瓦片数据结构. 默认浏览器纹理数据存放在\Cache\Earth\Images\NASA Landsat Imagery\ ...