当前位置: 代码网 > it编程>编程语言>Java > Kafka基础教程

Kafka基础教程

2024年08月06日 Java 我要评论
Apache Kafka起源于LinkedIn,后来在2011年成为一个开源Apache项目,然后在2012年成为一流的Apache项目。Kafka是用Scala和Java编写的。Apache Kafka是基于**发布-订阅( publish-subscribe)的容错消息传递系统**(fault tolerant messaging system)。它是快速的,可扩展的和分布式的设计。本教程将探索Kafka的原理,安装,操作,然后将带您完成Kafka集群的部署。

在这里插入图片描述

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使用案例

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


使用kafka的必要性

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

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

(0)

相关文章:

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

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com