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. sort算法的使用

    sort算法的使用 望文生义,sort是STL内置的一个排序算法,其底层是由多个排序算法的配合的使用. 需要包含的头文件 #include<algorithm> 使用 sort(参数1,参 ...

  2. IDEA批量实现CRLF转换成LF问题

    需要注意idea项目中右下角:选择LF,否则到时候部署到生产环境上会报错'\r\n'问题,之前的解决方案是 dos2unix 然后很多文件报这个问题,索性进行批量转换,但是很快拉去的新项目又会出现同样 ...

  3. shell中 ${}, ##, %%, :-,:+, ? 的使用

    假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt 可以用${}分别替换得到不同的值:${file#*/} 删掉第一个/及其左边的字符串:dir1/dir2/d ...

  4. Macos 安装md5sum、sha1sum、md5deep、sha1deep

    一.安装md5sum和sha1sum 方法一:brew 安装 # brew install md5sha1sum 方法二:编译安装 源码下载地址:http://www.microbrew.org/to ...

  5. 龙哥量化:通达信(KT交易师)分时图主图叠加5分钟K线图

    股友要求在通达信分时图主图叠加5分钟K线,但是通达信的分时图取不到最高价,最低价等数据,限制非常多. 然后我在KT交易师上写的公式测试成功了,效果如下. 如果您需要公式源码或者代写公式, 请联系我. ...

  6. Anaconda下载安装及Spyder使用Python

    第一:选择编程语言, C++ Java Python等,量化交易广泛使用Python开发策略. 第二:选择软件,Anaconda 或者 PyCharm,龙哥选用Anaconda,因为 Anaconda ...

  7. Qt编写安防视频监控系统63-子模块7悬浮地图

    一.前言 悬浮地图子模块,使用的百度地图,支持在线和离线,用于显示对应设备的位置,支持鼠标直接拖动和缩放.本系统将各个地方需要的地图模块+浏览器模块都合并到一个地图内核模块,这样需要使用的时候只需要n ...

  8. Qt开源作品30-农历控件

    一.前言 农历控件在国产linux中必备的控件之一,毕竟要适应国人的习惯,你看win10系统的日历,现在点开来直接就有农历在上面,非常方便人性化,所以在很多用Qt做的项目中,也有农历控件的应用场景,而 ...

  9. Quartz分布式定时任务

    前言: 项目需要执行定时任务,该类定时任务只需要实现类似Spring原生的@Scheudle注解的定时方法即可,无需考虑分片.刷新及重启,且因项目是多实例,所以需要考虑实现分布式,考察了目前开源的几款 ...

  10. Qml 中实现毛玻璃效果

    [写在前面] 毛玻璃效果(Acrylic Effect)是一种常见的 UI 设计风格,它通过模糊背景并添加透明度和噪声效果,使界面元素看起来像是半透明的磨砂玻璃. 本文将介绍如何使用 Qml 实现这种 ...