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 - 分布式消息队列的更多相关文章
- 【转】快速理解Kafka分布式消息队列框架
from:http://blog.csdn.net/colorant/article/details/12081909 快速理解Kafka分布式消息队列框架 标签: kafkamessage que ...
- Kafka 分布式消息队列介绍
Kafka 分布式消息队列 类似产品有JBoss.MQ 一.由Linkedln 开源,使用scala开发,有如下几个特点: (1)高吞吐 (2)分布式 (3)支持多语言客户端 (C++.Java) 二 ...
- Kafka分布式消息队列
基本架构 Kafka分布式消息队列的作用: 解耦:将消息生产阶段和处理阶段拆分开,两个阶段互相独立各自实现自己的处理逻辑,通过Kafka提供的消息写入和消费接口实现对消息的连接处理.降低开发复杂度,提 ...
- 快速理解Kafka分布式消息队列框架
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ ==是什么 == 简单的说,K ...
- kafka分布式消息队列介绍以及集群安装
简介 首先简单说下对kafka的理解: 1.kafka是一个分布式的消息缓存系统: 2.kafka集群中的服务器节点都被称作broker 3.kafka的客户端分为:一是producer(消息生产者) ...
- [转载] 快速理解Kafka分布式消息队列框架
转载自http://blog.csdn.net/xiaolang85/article/details/18048631 ==是什么 == 简单的说,Kafka是由Linkedin开发的一个分布式的消息 ...
- kafka分布式消息队列 — 基本概念介绍
[http://www.inter12.org/archives/818] 这个应该算是之前比较火热的词了,一直没时间抽出来看看.一个新东西出来,肯定是为了解决某些问题,不然不会有它的市场.先简单看下 ...
- Apache Kafka 分布式消息队列中间件安装与配置 转载
bin/zkServer.sh start /home/guym/down/kafka_2.8.0-0.8.0/config/zookeeper.properties& bin/kafka-s ...
- 在Centos 7上安装配置 Apche Kafka 分布式消息系统集群
Apache Kafka是一种颇受欢迎的分布式消息代理系统,旨在有效地处理大量的实时数据.Kafka集群不仅具有高度可扩展性和容错性,而且与其他消息代理(如ActiveMQ和RabbitMQ)相比,还 ...
- 分布式消息队列 Kafka
分布式消息队列 Kafka 2016-02-25 杜亦舒 Kafka是一个高吞吐量的.分布式的消息系统,由Linkedin开发,开发语言为scala具有高吞吐.可扩展.分布式等特点 适用场景 活动数据 ...
随机推荐
- QEMU CVE-2021-3947 和 CVE-2021-3929 漏洞利用分析
QEMU CVE-2021-3947 和 CVE-2021-3929 漏洞利用分析 CVE-2021-3947 信息泄露漏洞 漏洞分析 漏洞点是 nvme_changed_nslist stati ...
- Python绘制七段数码管字母:从理论到实践
在现代电子显示技术中,七段数码管是一种广泛应用的显示器件,常用于显示数字.字母和一些特殊符号.其基本原理是通过控制七个发光段(a, b, c, d, e, f, g)的亮灭来形成不同的显示内容.本文将 ...
- CW信号的正交解调
1.CW信号 CW可以叫做等幅电报,它通过电键控制发信机产生短信号"."(点)和长信号"--"(划),并利用其不同组合表示不同的字符,从而组成单词和句子. ...
- 【web】一个自适应的导航栏前端设计(只含HTML+CSS)
上一篇文章:[前端]CSS实现图片文字对齐 并随着设备尺寸改变而改变大小 本文是基于上一篇文章的补充. 效果如下 HTML源码 点击查看HTML代码 <!DOCTYPE html> < ...
- 【YashanDB知识库】Oracle pipelined函数在YashanDB中的改写
本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7802940.html?templateId=1718516 [问题分类]功能使用 ...
- git clone 需要密码
在使用Git管理代码项目的过程中,经常需要使用到git clone命令来克隆远程仓库到本地.有时候会碰到克隆远程仓库需要输入密码才能进行的情况.本文将会介绍如何解决这个问题. git clone 需要 ...
- Spring Validation 校验
概述 在 Web 应用中,客户端提交数据之前都会进行数据的校验,比如用户注册时填写的邮箱地址是否符合规范.用户名长度的限制等等,不过这并不意味着服务端的代码可以免去数据验证的工作,用户也可能使用 HT ...
- Qt音视频开发31-qmedia内核qt5/qt6播放视频
一.前言 在qt5中的多媒体框架明显比qt4丰富了很多,使用也极其友好,提供的api接口非常简单明了,不需要像qt4中那样还需要绑定和创建路径之类的.同样也还是依赖本地解码器,qt6中的多媒体框架据说 ...
- Qt音视频开发33-ffmpeg安卓版
一.前言 一直都想搞个安卓版本的视频监控程序,很早以前弄过一个,采用的是早期的ffmpeg2的lib文件,对于现在众多的网络流媒体格式,支持有限,而且新的Qt编写安卓程序,结构上也变动了,新的安卓系统 ...
- 安装opencv_contrib-3.4.9, fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录. 解决方法
1. 在Opencv的CmakeLists.txt 中加入以下include语句: INCLUDE_DIRECTORIES("/home/yourusername/Dependencies/ ...