Kafka 被称为“分布式提交日志”或“分布式流平台”

  文件系统或数据库提交日志用来提供所有事务的持久记录,通过重放这些日志重建系统状态,同时Kafka数据是按照一定顺序持久化保存的,可以按需读取

  Kafka数据分布在整个系统里,具有数据保障和性能伸缩能力

Kafka数据单元称为消息,类似于数据库里的行,消息由字节数组组成,里边的数据没有特殊含义;消息有一个可选的元数据----键(字节数组),当消息以一种

  可控的方式写入不同分区时,会用到键,保证相同键的消息总是写到相同的分区上

为提高效率,Kafka分批次写入Kafka,批次是一组消息,这些消息属于同一个主题和分区,批次越大,单位时间内处理消息越多,单个消息处理时间越长,批次数据会

  被压缩

Kafka的消息通过主题进行分类,主题类似于数据库的表,主题可以分为若干分区,一个分区就是一个提交日志,消息以追加方式写入分区,以先入先出方式读取

注意: 一个主题有几个分区,无法保证主题范围内消息的顺序,但是可以保证分区内的消息顺序

分区可以分布在不同的服务器上,即一个主题可以横跨多个服务器,以此提供比单个服务器更强大的性能

人们通常会使用流来描述Kafka系统的数据,很多时候一个主题可以看作一个流,不管多少分区,流是从一组生产者移动到消费者的数据

Kafka的客户端就是Kafka系统的用户,他们被分为2种类型:生产者和消费者

生产者创建消息,默认情况下,生产者会把消息均衡的分布到主题的所有分区上,而并不关心消息会被写到哪个分区上

生产者可以指定消息写到特定分区,通过消息键和分区器实现;分区器为键生成一个散列值,并映射到指定分区上,这样可以保证同一个键的消息可以写到同一个分区上

消费者读取消息,消费者可以订阅一个或多个主题,按照生成顺序读取,通过检查消息的偏移量区分已经都去过的消息;偏移量是一个元数据,是不断递增的,在创建消息时,会添加到消息里,在给定分区里,每个消息的偏移量是唯一的,消费者会把每个分区最后读取的消息偏移量保存在Zookeeper或Kafka上,若果消费者关闭或重启,读取的状态不会丢失

消费者是消费者群组的一部分,多个消费者共同读取一个主题时,群组保证每个分区只能被一个消费者使用。消费者与分区之间的映射关系被称为消费者对分区的所有权关系

消费者可以消费包含大量消息的主题,如果一个消费者失效,其余的消费者可以接管失效的消费者工作

一个独立的Kafka服务器称为broker,broker接收生产者的消息,为消息设置偏移量,并提交消息到磁盘保存;broker为消费者提供服务,对读取分区的请求做出响应,返回已经提交到磁盘上的消息

broker是集群的组成部分,每个集群都有一个broker被选举为集群控制器角色,控制器负责管理工作,包括将分区分配给broker和监控broker;在集群中,一个分区从属于一个broker(分区的首领);一个分区可以分配给多个broker,这时会发生分区复制,这种复制机制为分区提供了消息冗余,一个broker失效,其他broker可以接管领导权;相关的消费者和生产者都重新连接到新的首领

Kafka有一个重要特性:保留消息

默认保留策略是:保留一段时间(7天)或者保留到一定大小字节数,当达到这些条件时旧消息就会被删除

主题可以配置自己的保留策略

基于以下原因,建议使用多集群: 数据类型分离    安全需求隔离   多数据中心(灾难恢复)

Kafka提供了一个MirrorMaker工具用来实现集群间的消息复制,Mirror Maker的核心组件包含一个消费者和生产者,二者之间通过一个队列相连

消费者从一个集群读取消息,生产者把消息发送到另一个集群上

Kafka可以无缝支持多个多个生产者,适合从多个前端收集数据,以统一格式对外提供数据

Kafka支持多个消费者从单独一个消息流上读取数据,而且消费者之间互不影响

Kafka允许消费者非实时读取消息,这要归功于Kafka数据保留特性,消息提交到磁盘,根据保留规则保存,消费者可以从上次中断的地方继续处理消息

转载于:https://www.cnblogs.com/zy1234567/p/10339316.html

Kafka笔记1(初步认识)相关推荐

  1. 【Kafka笔记】4.Kafka API详细解析 Java版本(Producer API,Consumer API,拦截器等)

    简介 Kafka的API有Producer API,Consumer API还有自定义Interceptor (自定义拦截器),以及处理的流使用的Streams API和构建连接器的Kafka Con ...

  2. python入门笔记之初步了解代码

    # # python入门笔记之初步了解代码 #### 昨日回顾 ##### 操作系统 对计算机:秘书,管家 对人类:提供一个人性化操作台 ##### 三层架构 ```mermaid graph TD ...

  3. 【MQ】Kafka笔记

    笔记来源:尚硅谷视频笔记2.0版+2.1版 黑马视频:Kafka深入探秘者来了 kafka笔记地址:https://blog.csdn.net/hancoder/article/details/107 ...

  4. kafka笔记4--安装kafka ui

    kafka笔记4--安装kafka ui 1 介绍 2 安装 & 测试 2.1 docker 部署 kafka-ui 2.2 测试 3 注意事项 4 说明 1 介绍 文章 Overview o ...

  5. 限量笔记!Alibaba技术官都叹服的,Kafka笔记你逃不了的!

    前言: Kafka Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就 ...

  6. Kafka笔记整理(一)

    [TOC] Kafka简介 消息队列(Message Queue) 消息 Message网络中的两台计算机或者两个通讯设备之间传递的数据.例如说:文本.音乐.视频等内容. 队列 Queue一种特殊的线 ...

  7. 消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记

    最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了.额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ(ActiveMQ/RabbitMQ/Rocke ...

  8. 惊了 消息中间件合集:MQ(ActiveMQ/RabbitMQ/RocketMQ)+Kafka+笔记

    最近有好多朋友都去投岗秋招提前批,面完回来跟我说碰到消息中间件一类的问题就挂了. 附面试思维导图: 额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了MQ( ActiveMQ/Rab ...

  9. kafka笔记3(生产者)

    创建Kafka生产者: Kafka生产者有3个必选属性: bootstrap.servers   broker地址清单,格式为host:port   ,清单中不必包含所有broker,但至少2个 ke ...

  10. Kafka笔记:kafka原理简介以及架构

    文章目录 1.1概述 1.2消息系统介绍 1.2.1点对点消息传递 1.2.2发布-订阅消息传递 1.3 Kafka的优点 1.4 Kafka架构以及术语解释 1.4.1 Broker 1.4.2 T ...

最新文章

  1. Linux基本命令之vi
  2. linux热插拔原理,.NET Core 的热插拔机制的深入探索
  3. linux 使用trick记录之20203010
  4. 谷歌浏览器——请停用以开发者模式运行的扩展程序
  5. [NewLife.XCode]高级查询(化繁为简、分页提升性能)
  6. 实训09.09:简单的彩票系统(机选多注)
  7. QT打开ROS工作空间时遇到的问题和解决方法
  8. eclipse svn使用小记
  9. http://www.codeproject.com/Articles/11596/XPTable-NET-ListView-meets-Java-s-JTable
  10. 如何进行软件需求分析
  11. 【WLAN】WLAN室内无线信道模型分析及matlab仿真
  12. 37--8位级联加法器,并行加法器
  13. JavaScript之this释疑
  14. 川农《组织行为学(本科)》21年12月作业考核
  15. 1374:铲雪车(snow)——欧拉回路
  16. 【Warshall算法】
  17. Heuristics for Scalable Dynamic Test Generation
  18. 深入浅出ES6:模板字符串(`和‘)
  19. 通过adb安装apk到android手机
  20. [Mugeda HTML5技术教程之2] Mugeda HTML5富媒体平台简介

热门文章

  1. 7月最强书单丨博文视点新品畅销TOP10,让技术带你燃爆整个7月
  2. collections的defaultdict使用
  3. php 四级联动插件,JavaScript_jQuery实现的多选框多级联动插件,jQuery 实现的多选框联动插件 - phpStudy...
  4. 三、optimizer_trace分析
  5. Futter基础11篇: 实现自定义AppBar 定义顶部Tab切换、底部Tab结合顶部Tab实现类似头条页面布局
  6. Eclipse 中如何设置字体大小与样式
  7. .NET/CLI元数据中使用的压缩整数
  8. BeautifulSoup4 搜索文档树Day3-8
  9. NGSL + NAWL 单词表 以及学习网站
  10. appium分层自动化的封装