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卡夫卡详解相关推荐

  1. 卡夫卡详解_卡夫卡概念

    卡夫卡详解 Apache Kafka is an open-source distributed event streaming platform used by thousands of compa ...

  2. 卡夫卡详解_卡夫卡快速入门

    卡夫卡详解 This article will teach you the basics of a fast-growing and reliable streaming platform that ...

  3. android卡刷教程,卡刷是什么意思?安卓系统卡刷教程详解

    2016-03-29 17:43:49 卡刷是什么意思?安卓系统卡刷教程详解 标签:卡刷,安卓系统卡刷教程,卡刷升级 [ROM之家]使用安卓系统手机的发烧友可能会经常提到卡刷一词,那么到底卡刷是什么意 ...

  4. linux免采集卡直播ps4,PS4游戏直播采集卡使用教程详解

    在网络直播潮流中,ps4连接笔记本显示器进行的PS4游戏直播拥有着大批的主播与粉丝,而这其中也包括了PS4采集卡的鼎力相助.接下来同三维来PS4游戏直播采集卡使用教程详解. 一.准备阶段: 一台PS4 ...

  5. 【SD卡】关于DJYOS下SD卡驱动开发详解

    关于DJYOS下SD卡驱动开发详解 王建忠 2011/6/21 1      开发环境及说明 硬件平台:tq2440(CPU: s3c2440) 操作系统:DJYOS1.0.0 1.1    说明 T ...

  6. android 请求sd卡权限,androidQ sd卡权限使用详解

    默认情况下,如果应用以 Android Q 为目标平台,则在访问外部存储设备中的文件时会进入过滤视图.应用可以使用 Context.getExternalFilesDir() 将专用于自己的文件存储在 ...

  7. android sdcardfs 权限,androidQ sd卡权限使用详解

    默认情况下,如果应用以 Android Q 为目标平台,则在访问外部存储设备中的文件时会进入过滤视图.应用可以使用 Context.getExternalFilesDir() 将专用于自己的文件存储在 ...

  8. 卡夫卡 it_解决我怪异的卡夫卡再平衡问题

    卡夫卡 it Imagine working on your Kafka Streams application. You deploy it to Kubernetes, wait a few ho ...

  9. 最全Kafka 设计与原理详解【2017.9全新】

    一.Kafka简介 1.1 背景历史 当今社会各种应用系统诸如商业.社交.搜索.浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何 ...

最新文章

  1. Ramsey定理数学
  2. 其他算法-PCA主成分分析
  3. Makefile写法入门心得
  4. centos php fpm 内存,CentOS下yum安装PHP-配置php-fpm服务
  5. Redis会遇到的15个「坑」,你踩过几个?
  6. sublime3 ctl+b无效
  7. 02_Jquery_02_元素选择器
  8. python xycoords_python可视化节点关系(三):matplotlib(2)鼠标交互
  9. 信息学奥赛一本通(1189:Pell数列)
  10. Python heapq库的用法介绍
  11. Vue学习笔记一 创建vue项目
  12. 火狐浏览器中一个插件-httpfox
  13. 计算机软考高级论文怎么写,【干货】软考高级论文怎么写易得高分?
  14. 叶俊|知行合一创纪录|杭州创纪录企业管理咨询有限公司董事长简介
  15. Ubuntu中报错:failed to create hard link
  16. 51单片机:编程实现数码管显示0~999999的秒表计时,高位的0不显示。
  17. 如何成为一家顶级域名注册商及如何提供域名注册
  18. 下拉管家解析各搜索引擎及APP端下拉推荐词的实现规则
  19. CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理(二)
  20. matlab 强度梯度,梯度算法的Matlab实现

热门文章

  1. 运动耳机哪家强?运动耳机排行榜有你想买的品牌吗?
  2. python 读取geotiff,从Geotiff使用Gdal python读取高程
  3. 一个令人赞不绝口的代码 Debug 神器!
  4. 电脑磁盘分区D盘划分给C盘,(无需格式化)DiskGenius使用<亲测有效>
  5. 2017大学计算机操作题,【2017年整理】大学计算机基础操作题.ppt
  6. 尚硅谷B2C电商毕设微服务项目中所用注释总结
  7. 生产管理数据分析可视化
  8. 我的创业你也可以复制:工商登记、刻章、税务登记和银行开户
  9. matlab产生参数可调的干扰源,多参数可调加噪信号源的制作方法
  10. 热备份和冷备份优缺点