kafka基础教程_spark kafka

kafka基础教程_spark kafka一、基本概念Kafka™用于构建实时数据流水线和流媒体应用,具有水平可扩展性,容错性,并在数千家公司得到了应用。流媒体平台(streamingplatform)有三个关键功能:1.发布和订阅记录流。在这方面,类似于消息队列或企业消息系统。2.以容错方式存储记录流。3.实时处理记录流。Kafka被用于两大类应用程序:1.构建可在系统或应用程序之间可靠获取数据的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、基本概念

Kafka™用于构建实时数据流水线和流媒体应用,具有水平可扩展性,容错性,并在数千家公司得到了应用。
流媒体平台(streaming platform)有三个关键功能:
1. 发布和订阅记录流。 在这方面,类似于消息队列或企业消息系统。
2. 以容错方式存储记录流。
3. 实时处理记录流。

Kafka被用于两大类应用程序:
1. 构建可在系统或应用程序之间可靠获取数据的实时流数据流水线;
2. 构建对数据流进行变换或反应的实时流应用程序

重要定义:
1. Kafka以集群方式运行,包含一个或多个服务器上。
2. Kafka以topic形式保存记录。
3. 每条记录由一个键key,一个值value和一个时间戳timestamp组成。

Kafka有4个核心API:
1. Producer API允许应用程序将记录流发布到一个或多个Kafka主题。
2. Consumer API允许应用程序订阅一个或多个主题并处理为其生成的记录流。
3. Streams API允许应用程序充当流处理器,从一个或多个主题消耗输入流,并产生输出流到一个或多个输出主题,有效地将输入流转换为输出流。
4. Connector API允许构建和运行将Kafka主题与现有应用程序或数据系统相连接的可重复使用的生产者或消费者。 例如和关系数据库的连接器可能会捕获表的每个更改。

这里写图片描述
Kafka中客户端与服务器之间的通信使用TCP协议

Topics and Logs

Topic是记录的类别或Feed名称。 Kafka的主题总是多用户的; 也就是说,每个主题可以有零个,一个或多个消费者订阅订阅的数据。
对于每个主题,Kafka集群都会维护一个如下所示的分区日志。
这里写图片描述
每个分区是一个有序的,不可变的记录序列,不断附加到结构化的提交日志中。 每个分区中的记录都被分配一个顺序的id号,称为唯一标识分区内每个记录的偏移量offset
这里写图片描述
Kafka集群保留所有已发布的记录(无论它们是否已被使用 ), 使用可配置的保留期限。 例如,如果保留策略设置为两天,则在发布记录后的两天内,它可以消费,之后它将被丢弃以释放空间。
log的分区有几个目的:
1. 它们允许日志扩展到适合单个服务器的大小。 每个单独的分区必须适合托管它的服务器,但主题可能有很多分区,因此它可以处理任意数量的数据。
2. 一个分区作为并行计算的单位,有利于并行计算

Distribution

日志的分区分布在Kafka集群中的服务器上,每个服务器处理数据并请求共享的分区。 每个分区都跨可配置数量的服务器进行复制,以实现容错。
每个分区有一个服务器充当“leader”,零个或多个服务器充当“followers”。 leader处理分区的所有读取和写入请求,而followers做备份。 如果leader失败,其中一个follower将自动成为新的leader。 每个服务器作为其一些分区的leader,并且其他分支的followers,因此在集群内负载平衡良好。

Producers

生产者将数据发布到他们选择的主题。 生产者负责选择分配哪些记录在主题中哪个分区。 这可以通过循环方式简单地平衡负载,或者可以根据某些语义分区功能(例如基于记录中的某些关键字)来完成。 第二种方式使用地较多!

Consumers

Kafka总结起来就是:
1. Kafka as a Messaging System,与传统的消息队列和企业消息系统的对比
2. Kafka as a Storage System
3. Kafka for Stream Processing

参考文献:
Kafka官网:https://kafka.apache.org/intro.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/181247.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea入门与实战(实战训练)

    工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程Git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七…

    2022年4月11日
    51
  • 硕士论文计算机要求,计算机硕士论文格式要求

    硕士论文计算机要求,计算机硕士论文格式要求

    2021年11月27日
    54
  • 服务器监控系统应有哪些功能,公安视频监控系统需要具备哪些功能「建议收藏」

    服务器监控系统应有哪些功能,公安视频监控系统需要具备哪些功能「建议收藏」现在视频监控系统已经开始与公安管理联动起来,有效保护公共安全,对于公安这样重要的执法部门来说,高清化、无线化、远程、实时的监控是行业监控安全运作必备的前提条件。除此以外,公安视频监控系统还需要具备哪些功能?1、应急指挥调度功能①实现紧急情况的收集、显示、上报功能。即在指挥中心内能通过网络传输和其他通信方式实时接收、显示、上报紧急情况的现场文字、图片、语音信息,并能通过终端服务器和显示屏随时调阅紧急…

    2022年7月16日
    17
  • 华为交换机链路聚合trunk_华为删除链路聚合命令

    华为交换机链路聚合trunk_华为删除链路聚合命令文章目录一、为什么要用到聚合二、链路聚合三、拓扑四、基本配置五、部署LinkAggregation-链路聚合一、为什么要用到聚合1、二层环境为什么要用到聚合(1)接入层的流量剧增;(2)现行存储数据剧增;(3)监控网络运行大数据流量;

    2025年7月27日
    4
  • spring-mybatis整合-SqlSessionTemplate

    spring-mybatis整合-SqlSessionTemplateSqlSessionTemplate是MyBatis-Spring的核心。这个类负责管理MyBatis的SqlSession,调用MyBatis的SQL方法,翻译异常。SqlSessionTemplate是线程安全的,可以被多个DAO所共享使用。当调用SQL方法时,包含从映射器getMapper()方法返回的方法,SqlSessionTemplate将会保证使用的SqlSession是和当前S

    2022年5月6日
    35
  • LoadLibrary失败的原因「建议收藏」

    LoadLibrary失败的原因「建议收藏」今天使用LoadLibrary时,失败,于是翻了一下MSDN:LoadLibraryTheLoadLibraryfunctionmapsthespecifiedexecutablemoduleintotheaddressspaceofthecallingprocess. Foradditionalloadoptions,usetheLo

    2022年7月13日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号