Kafka基础教程

news2024/11/28 16:28:03

在这里插入图片描述

Kafka基础教程

资料来源:Apache Kafka - Introduction (tutorialspoint.com)

Apache Kafka起源于LinkedIn,后来在2011年成为一个开源Apache项目,然后在2012年成为一流的Apache项目。Kafka是用Scala和Java编写的。Apache Kafka是基于发布-订阅( publish-subscribe)的容错消息传递系统(fault tolerant messaging system)。它是快速的,可扩展的和分布式的设计。

本教程将探索Kafka的原理,安装,操作,然后将带您完成Kafka集群的部署。最后,我们将总结实时应用和与大数据技术的集成。

1. Kafka-简介

在大数据中,使用了大量的数据。关于数据,我们面临两个主要挑战。第一个挑战是如何收集大量的数据,第二个挑战是如何分析收集到的数据。为了克服这些挑战,您必须需要一个消息传递系统

Kafka是为分布式高吞吐量系统设计的。Kafka可以很好地替代传统的消息代理。与其他消息传递系统相比,Kafka具有更好的吞吐量、内置分区、可复制和固有的容错能力,这使得它非常适合大规模应用。


什么是消息传递系统?

消息传递系统负责将数据从一个应用程序传输到另一个应用程序,因此应用程序可以专注于数据本身,而不必担心如何共享数据。分布式消息传递基于可靠消息队列的概念。消息在客户机应用程序和消息传递系统之间异步排队。有两种类型的消息传递模式可用:一种是点对点(point-point),另一种是发布-订阅(pub-sub)消息传递系统。大多数消息传递模式遵循发布-订阅


点对点的消息传递系统

在点对点系统中,消息被保存在队列中。一个或多个消费者可以使用队列中的消息,但是一个特定的消息最多只能由一个消费者使用。一旦使用者读取队列中的消息,它就会从队列中消失。该系统的典型示例是订单处理系统,其中每个订单将由一个订单处理器处理,但多个订单处理器也可以同时工作。下图描述了该结构。

point-to-point Messaging system


发布-订阅消息传递系统

在发布-订阅系统中,消息被保存在主题中。与点对点系统不同,消费者可以订阅一个或多个主题,并使用该主题中的所有消息。在发布-订阅系统中,消息生产者称为发布者,消息消费者称为订阅者。现实生活中的一个例子是Dish TV,它发布不同的频道,如体育、电影、音乐等,任何人都可以订阅自己的频道集,并在他们订阅的频道可用时获得这些频道。

Publish-Subscribe Messaging system


什么是Kafka?

Apache Kafka是一个分布式发布-订阅消息系统和一个健壮的队列,可以处理大量数据,并允许您将消息从一个端点传递到另一个端点。Kafka适用于离线和在线消息消费。Kafka消息被持久化在磁盘上,并在集群内复制,以防止数据丢失。Kafka是建立在ZooKeeper同步服务之上的。它可以很好地与Apache Storm和Spark集成,用于实时流数据分析。


Kafa的优点

以下是Kafa的一些优点

  • 可靠性−Kafka具有分布式、分区、复制、容错等特点。

  • 可扩展性−Kafka消息系统可轻松扩展而无需停机(down time)。

  • 持久性- Kafka使用分布式提交日志,这意味着消息尽可能快地保存在磁盘上,因此它是持久的。

  • 高性能−Kafka在发布和订阅消息方面都有很高的吞吐量。即使存储了许多TB的消息,它也能保持稳定的性能。

Kafka非常快,并保证零停机时间和零数据丢失。


Kafka使用案例

Kafka有许多使用案例,以下列出一些:

  • **数据提要(Metrics)**−Kafka通常用于运营监控数据。这涉及到聚合来自分布式应用程序的统计信息,以生成操作数据的集中提要。
  • 日志聚合解决方案−Kafka可以跨组织使用,从多个服务收集日志,并以标准格式提供给多个消费者。
  • 流处理:-Storm和Spark Streaming等流行的框架从主题(topic)中读取数据,对其进行处理,并将处理后的数据写入新主题,供用户和应用程序使用。Kafka强大的持久性在流处理环境中也非常有用。

使用Kafka的必要性

Kafka是一个处理所有实时数据源的统一平台。Kafka支持低延迟消息传递,并在机器出现故障时提供容错保证。它有能力处理大量不同的消费者。Kafka非常快,每秒写200万次。Kafka将所有数据持久化到磁盘,这实际上意味着所有的写操作都将进入操作系统(RAM)的页面缓存。这使得将数据从页面缓存传输到网络套接字非常有效。

未完待续。。。。点个赞呗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1844762.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024广东省职业技能大赛云计算赛项实战——Minio服务搭建

Minio服务搭建 前言 这道题是比赛时考到的,没找到具体题目,但在公布的样题中找到了,虽然很短~ 使用提供的 OpenStack 云平台,申请一台云主机,使用提供的软件包安装部署 MINIO 服务并使用 systemctl 管理 Minio是一个…

SAR动目标检测系列:【4】动目标二维速度估计

在三大类杂波抑制技术(ATI、DPCA和STAP)中,STAP技术利用杂波与动目标在二维空时谱的差异,以信噪比最优为准则,对地杂波抑制的同时有效保留动目标后向散射能量,有效提高运动目标的检测概率和动目标信号输出信杂比,提供理…

2024华为OD机试真题- 计算三叉搜索树的高度-(C++/Python)-C卷D卷-100分

2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 定义构造三叉搜索树规则如下: 每个节点都存有一个数,当插入一个新的数时,从根节点向下寻找,直到找到一个合适的空节点插入。查找的规则是: 1.如果数小于节点的数减去500,则将数插入节点的左子树 2.如果数大于…

微软Azure AI更新视频翻译和语音翻译 API 功能!企业适用TTS文本转语音

很高兴与大家分享 Azure AI 语音翻译产品套件的两个重大更新! 分别是视频翻译和增强的实时语音翻译 API。 视频翻译(批量) 微软宣布推出视频翻译预览版,这是一项突破性的服务,旨在改变企业本地化视频内容的方式。 随着…

STM32通过Flymcu串口下载程序

文章目录 1. Flymcu 2. 操作流程 2.1 设备准备 2.2 硬件连接 2.3 设置BOOT引脚 2.4 配置 2.5 下载程序 1. Flymcu Flymcu软件可以通过串口给STM32下载程序,如果没有STLINK的时候,就可以使用这个来烧录程序。软件不用安装,直接打开就行…

【Linux】使用ntpdate同步

ntpdate 是一个在 Linux 系统中用于同步系统时间的命令行工具,它通过与 NTP 服务器通信来调整本地系统时钟。然而,需要注意的是,ntpdate 已经被许多现代 Linux 发行版弃用。 安装 yum install -y ntpdate 查看时间 date同步时间 ntpdate ntp…

条码工具 Dynamic Web TWAIN HTML5 版本的工作原理

Dynamic Web TWAIN 是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者Share…

【Proteus仿真】【51单片机】基于物联网新能源电动车检测系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶显示模块、WIFI模块、蜂鸣器、LED按键、ADC PCF8591、DS18B20温度传感器等。 主要功能: 系统运行后,LCD1602显…

sed去除文件中的引号

文件中有很多双引号: 使用sed命令去除 sed -i s/"//g movies.csv

Redis—String数据类型及其常用命令详解

文章目录 Redis概述1.Redis-String数据类型概述2.常用命令2.1 SET:添加或者修改已经存在的一个String类型的键值对2.2 GET:根据key获取String类型的value2.3 MSET:批量添加多个String类型的键值对2.4 MGET:根据多个key获取多个Str…

Hadoop简单应用程序实例

Hadoop是一个分布式系统基础架构,主要用于大数据的存储和处理。它允许使用简单的编程模型跨集群处理和生成大数据集。Hadoop主要由HDFS(Hadoop Distributed FileSystem,分布式文件系统)和MapReduce编程模型两部分组成。 准备工作…

利用星穹云Serverless云平台高效开发小程序的技术实践

一、引言 在快速迭代、持续创新的互联网环境下,开发者们面临着巨大的挑战。传统的小程序开发模式不仅需要掌握后端技术,还需要关注服务器部署、维护等一系列问题,这无疑增加了开发者的学习成本和项目复杂度。而Serverless架构的兴起&#xf…

界面构件开发之RC文件

代码; #include <gtk-2.0/gtk/gtk.h> #include <gtk-2.0/gdk/gdkkeysyms.h> #include <glib-2.0/glib.h> #include <stdio.h>int main(int argc, char *argv[]) {gtk_init(&argc, &argv);gtk_rc_parse("./mainrc");GtkWidget *winN…

无人机校企合作

有没有想过&#xff0c;无人机和校企合作能碰撞出怎样的火花&#xff1f;&#x1f525;今天就来给大家揭秘一下这个神秘组合&#xff01; 无人机&#xff0c;作为现代科技的代表&#xff0c;已经渗透到我们生活的方方面面。而校企合作&#xff0c;更是推动科技创新、培养人才的…

Net开源项目推荐-WPF控件样式篇

Net开源项目推荐-WPF控件样式篇 HandyControlWPFDeveloperswpf-uidesignLive-ChartsAvalonDock HandyControl WPF控件库,比较常用的WPF开源控件库&#xff0c;对WPF原有控件样式都进行了重写和扩展&#xff0c;也增加了许多特别的控件&#xff0c;非常好用 github仓库&#x…

Centos7.9安装openldap

文章目录 一、背景二、正文2.1 openldap服务端必要软件安装2.1.1使用yum命令安装2.1.2安装libdb相关依赖2.1.3复制一个默认配置到指定目录下&#xff0c;并授权&#xff0c;这一步一定要做&#xff0c;然后再启动服务&#xff0c;不然生成密码时会报错2.1.4授权给ldap用户&…

CSS规则——font-face

font-face 什么是font-face&#xff1f; 想要让网页文字千变万化&#xff0c;仅靠font-family还不够&#xff0c;还要借助font-face&#xff08;是一个 CSS 规则&#xff0c;它允许你在网页上使用自定义字体&#xff0c;而不仅仅是用户系统中预装的字体。这意味着你可以通过提…

Web前端项目-页面动态背景【附完整源码】

页面动态背景 一&#xff1a;花瓣背景 页面效果&#xff1a; HTML代码 <!DOCTYPE HTML> <HTML> <TITLE>花瓣漫舞</TITLE> <META NAME"Generator" CONTENT"EditPlus"> <META NAME"Author" CONTENT"&quo…

【ACM出版】2024人工智能与自然语言处理国际学术会议(AINLP 2024,7月19-21)

2024人工智能与自然语言处理国际学术会议&#xff08;AINLP 2024&#xff09;将于2024年7月19-21日在中国珠海召开&#xff0c;该会议作为第四届人工智能、自动化与高性能计算国际会议&#xff08;AIAHPC 2024&#xff09;分会场召开。 本次会议主要围绕“人工智能与自然语言处…

2024高考-优先选专业还是优先选学校

分数限制下&#xff0c;选好专业还是选好学校&#xff1f; 24年高考帷幕落下&#xff0c;一场新的思考与选择悄然来临。对于每一位高考考生&#xff0c;学校和专业都是开启大学新生活的两个前置必选项。但有时候“鱼与熊掌不可兼得”&#xff0c;在分数受限的条件下&#xff0…