Kafka卡夫卡详解
Kafka卡夫卡详解
- Kafka设计方式
- Topics
- Producers
- Consumers
参考:https://www.cnblogs.com/shijiaoyun/p/4860734.html?tvd=&from=timeline&isappinstalled=1
Kafka设计方式
Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。
独特设计方式:
Topic:对一组信息的归纳,消息以topic为单位进行归纳
Producer:向Kafka发布消息的程序
Consumer:预订topics并消费消息的程序
Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker.
producers通过网络将消息发送到Kafka集群,集群向消费者提供消息
Topics
对每个消息,Kafka对其日志进行了分区:
每个分区都由一系列有序的、不可变的消息组成,这些消息被连续的追加到分区中。分区中的每个消息都有一个连续的序列号叫做offset,用来在分区中唯一的标识这个消息(consumer来维护:一般情况下随着consumer不断的读取消息,这offset的值不断增加,但其实consumer可以以任意的顺序读取消息,比如它可以将offset设置成为一个旧的值来重读之前的消息)。
分区目的:每个日志小,可在单个服务上保存,每个分区可以单独发布和消费
–> 并发
–> 分布式:
- 每个分区在Kafka集群的若干服务中都有副本,持有副本的服务可以共同处理数据和请求
- 每个分区都由一个服务器作为“leader”,零或若干服务器作为“followers”,leader负责处理消息的读和写,followers则去复制leader(如果leader down了,followers中的一台则会自动成为leader。集群中的每个服务都会同时扮演两个角色:所持有的一部分分区的leader,同时作为其他分区的followers,集群就会据有较好的负载均衡。)
Producers
Producer将消息发布到它指定的topic中,并负责决定发布到哪个分区。
通常简单的由负载均衡机制随机选择分区,但也可以通过特定的分区函数选择分区(通常更多)。
Consumers
发布消息通常有两种模式:队列模式(queuing)和发布-订阅模式(publish-subscribe)。
- 队列模式
consumers可以同时从服务端读取消息,每个消息只被其中一个consumer读到 - 发布-订阅模式
消息被广播到所有的consumer中;
Consumers可以加入一个consumer 组,共同竞争一个topic,topic中的消息将被分发到组中的一个成员中。
Kafka只能保证一个分区之内消息的有序性,在不同的分区之间是不可以的。如果需要topic中所有消息的有序性,那就只能让这个topic只有一个分区,当然也就只有一个consumer组消费它。
Kafka卡夫卡详解相关推荐
- 卡夫卡详解_卡夫卡概念
卡夫卡详解 Apache Kafka is an open-source distributed event streaming platform used by thousands of compa ...
- 卡夫卡详解_卡夫卡快速入门
卡夫卡详解 This article will teach you the basics of a fast-growing and reliable streaming platform that ...
- android卡刷教程,卡刷是什么意思?安卓系统卡刷教程详解
2016-03-29 17:43:49 卡刷是什么意思?安卓系统卡刷教程详解 标签:卡刷,安卓系统卡刷教程,卡刷升级 [ROM之家]使用安卓系统手机的发烧友可能会经常提到卡刷一词,那么到底卡刷是什么意 ...
- linux免采集卡直播ps4,PS4游戏直播采集卡使用教程详解
在网络直播潮流中,ps4连接笔记本显示器进行的PS4游戏直播拥有着大批的主播与粉丝,而这其中也包括了PS4采集卡的鼎力相助.接下来同三维来PS4游戏直播采集卡使用教程详解. 一.准备阶段: 一台PS4 ...
- 【SD卡】关于DJYOS下SD卡驱动开发详解
关于DJYOS下SD卡驱动开发详解 王建忠 2011/6/21 1 开发环境及说明 硬件平台:tq2440(CPU: s3c2440) 操作系统:DJYOS1.0.0 1.1 说明 T ...
- android 请求sd卡权限,androidQ sd卡权限使用详解
默认情况下,如果应用以 Android Q 为目标平台,则在访问外部存储设备中的文件时会进入过滤视图.应用可以使用 Context.getExternalFilesDir() 将专用于自己的文件存储在 ...
- android sdcardfs 权限,androidQ sd卡权限使用详解
默认情况下,如果应用以 Android Q 为目标平台,则在访问外部存储设备中的文件时会进入过滤视图.应用可以使用 Context.getExternalFilesDir() 将专用于自己的文件存储在 ...
- 卡夫卡 it_解决我怪异的卡夫卡再平衡问题
卡夫卡 it Imagine working on your Kafka Streams application. You deploy it to Kubernetes, wait a few ho ...
- 最全Kafka 设计与原理详解【2017.9全新】
一.Kafka简介 1.1 背景历史 当今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何 ...
最新文章
- Ramsey定理数学
- 其他算法-PCA主成分分析
- Makefile写法入门心得
- centos php fpm 内存,CentOS下yum安装PHP-配置php-fpm服务
- Redis会遇到的15个「坑」,你踩过几个?
- sublime3 ctl+b无效
- 02_Jquery_02_元素选择器
- python xycoords_python可视化节点关系(三):matplotlib(2)鼠标交互
- 信息学奥赛一本通(1189:Pell数列)
- Python heapq库的用法介绍
- Vue学习笔记一 创建vue项目
- 火狐浏览器中一个插件-httpfox
- 计算机软考高级论文怎么写,【干货】软考高级论文怎么写易得高分?
- 叶俊|知行合一创纪录|杭州创纪录企业管理咨询有限公司董事长简介
- Ubuntu中报错:failed to create hard link
- 51单片机:编程实现数码管显示0~999999的秒表计时,高位的0不显示。
- 如何成为一家顶级域名注册商及如何提供域名注册
- 下拉管家解析各搜索引擎及APP端下拉推荐词的实现规则
- CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(二)
- matlab 强度梯度,梯度算法的Matlab实现