1、简介

kafka是最初由linkedin公司开发的,使用scala语言编写,kafka是一个分布式,分区的,多副本的,多订阅者的日志系统(分布式MQ系统),可以用于搜索日志,监控日志,访问日志等。

1.2、支持的语言

kafka目前支持多种客户端的语言:java、python、c++、php等

1.3、apache kafka是一个分布式发布-订阅消息系统

apache kafka是一个分布式发布-订阅消息系统和一个强大的队列,可以处理大量的数据,并使能够将消息从一个端点传递到另一个端点,kafka适合离线和在线消息消费。kafka消息保留在磁盘上,并在集群内复制以防止数据丢失。kafka构建在zookeeper同步服务之上。它与apache和spark非常好的集成,应用于实时流式数据分析。

1.4、其他的消息队列

RabbitMQ
Redis
ZeroMQ
ActiveMQ

1.5、kafka的好处

可靠性:分布式的,分区,复制和容错的。
可扩展性:kafka消息传递系统轻松缩放,无需停机。
耐用性:kafka使用分布式提交日志,这意味着消息会尽可能快速的保存在磁盘上,因此它是持久的。
性能:kafka对于发布和定于消息都具有高吞吐量。即使存储了许多TB的消息,他也爆出稳定的性能。
kafka非常快:保证零停机和零数据丢失。

2 kafka应用场景

2.1、指标分析

kafka 通常用于操作监控数据。这设计聚合来自分布式应用程序的统计信息, 以产生操作的数据集中反馈

2.2、日志聚合解决方法

kafka可用于跨组织从多个服务器收集日志,并使他们以标准的合适提供给多个服务器。

2.3、流式处理

流式处理框架(spark,storm,flink)重主题中读取数据,对齐进行处理,并将处理后的数据写入新的主题,供 用户和应用程序使用,kafka的强耐久性在流处理的上下文中也非常的有用。

3 kafka架构

3.1 kafka的架构图

官方文档架构图:

kafka四大核心

  • 生产者API
    允许应用程序发布记录流至一个或者多个kafka的主题(topics)。
  • 消费者API
    允许应用程序订阅一个或者多个主题,并处理这些主题接收到的记录流。
  • StreamsAPI

允许应用程序充当流处理器(stream processor),从一个或者多个主题获取输入流,并生产一个输出流到一个或 者多个主题,能够有效的变化输入流为输出流。

  • ConnectorAPI

允许构建和运行可重用的生产者或者消费者,能够把kafka主题连接到现有的应用程序或数据系统。例如:一个连 接到关系数据库的连接器可能会获取每个表的变化。

架构关系图:


说明:kafka支持消息持久化,消费端为拉模型来拉取数据,消费状态和订阅关系有客户端负责维护,消息消费完 后,不会立即删除,会保留历史消息。因此支持多订阅时,消息只会存储一份就可以了。

kafka整体架构图

kafka架构说明

一个典型的kafka集群中包含若干个Producer,若干个Broker,若干个Consumer,以及一个zookeeper集群; kafka通过zookeeper管理集群配置,选举leader,以及在Consumer Group发生变化时进行Rebalance(负载均 衡);Producer使用push模式将消息发布到Broker;Consumer使用pull模式从Broker中订阅并消费消息。

kafka简介及应用场景、架构相关推荐

  1. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    为什么80%的码农都做不了架构师?>>>    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2. ...

  2. 消息中间件系列(二):Kafka的原理、基础架构、以及使用场景

    一:Kafka简介 Apache Kafka是分布式发布-订阅消息系统,在 kafka官网上对 kafka 的定义:一个分布式发布-订阅消息传递系统. 它最初由LinkedIn公司开发,Linkedi ...

  3. kafka入门:简介、使用场景、设计原理、主要配置及集群搭

    李克华 云计算高级群: 292870151 195907286 交流:Hadoop.NoSQL.分布式.lucene.solr.nutch  kafka入门:简介.使用场景.设计原理.主要配置及集群搭 ...

  4. 分布式消息系统 Kafka 简介

    分布式消息系统 Kafka 简介 阅读目录 5.1 吞吐量 5.2 负载均衡 5.3 拉取系统 5.4 可扩展性 5.5 消息删除策略 6.1 消息队列 6.2 行为跟踪 6.3 元信息监控 6.4 ...

  5. Hello Kafka(八)——Confluent Kafka简介

    一.Confluent Kafka简介 1.Confluent Kafka简介 2014年,Kafka的创始人Jay Kreps.NahaNarkhede和饶军离开LinkedIn创立Confluen ...

  6. 学习笔记Kafka(一)—— Kafka简介

    一.什么是消息系统 消息系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据,但不担心如何共享它. 分布式消息传递基于可靠消息队列的概念. 消息在客户端应用程序和消息传递系统之 ...

  7. DL之PSPNet:PSPNet算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之PSPNet:PSPNet算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 PSPNet算法的简介(论文介绍) 0.实验结果 PSPNet算法的架构详解 PSPNet算法的案 ...

  8. DL之SegNet:SegNet图像分割/语义分割算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之SegNet:SegNet图像分割/语义分割算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 导读 基于CNN的神经网络SegNet算法可进行高精度地识别行驶环境. 目录 SegN ...

  9. DL之InceptionV2/V3:InceptionV2 InceptionV3算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之InceptionV2/V3:InceptionV2 & InceptionV3算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 InceptionV2 & ...

最新文章

  1. python里面返回上一步_Python中的这3个骚操作你会吗?
  2. 请你说明ConcurrentHashMap有什么优势以及1.7和1.8区别?
  3. jq 地区(省市县区)联动菜单
  4. 中科大在50年代的教学理念
  5. JAVA入门级教学之(方法重写/方法重载)
  6. Primes on Interval(CF-237C)
  7. 记录报错:java.lang.NullPointerException org.apache.jsp.test_jsp._jspInit(test_jsp.java:23)
  8. 利用线程池单线程下载网页信息
  9. xgboost算法详解
  10. java什么是工作空间_[Java教程]Java开发工具(Eclipse工作空间的基本配置)
  11. C语言实验——简单排序
  12. Ring Buffer 原理
  13. 谷歌浏览器刷新快捷键
  14. 一文解读Masked Autoencoder(MAE)
  15. UCAS - AI学院 - 计算机视觉专项课 - 第6讲 - 课程笔记
  16. 【LeetCode】把数字翻译成字符串最长不含重复字符的子字符串
  17. 游戏开发心得——书籍篇——《游戏引擎框架》-导论
  18. 万向和肖风的区块链版图
  19. 2020-09-15,小米笔试,java
  20. python计算圆柱体积_python计算圆周长、面积、球体体积并画出圆

热门文章

  1. python简述对象和类的关系_python 类的定义_类和对象的关系
  2. [转]Java中文处理学习笔记——Hello Unicode
  3. 学习编程语言时,为何有很多人不建议从C语言开始学起[图]
  4. Go Modules
  5. HCNP——黑洞路由和路由表与FIB表
  6. linux写黑洞路由,2019-05-21 路由黑洞与黑洞路由
  7. 富文本编辑器 mysql_富文本编辑器汇总
  8. AD20使用之 怎么使用第三方PCB文件或封装库文件
  9. textBox控件无法改变高度
  10. t-分布(学生分布), t-distribution 的定义及性质