【学习笔记】Java——消息队列kafka

这篇具有很好参考价值的文章主要介绍了【学习笔记】Java——消息队列kafka。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Kafka combines three key capabilities:

  • To publish (write) and subscribe to (read) streams of events,
    including continuous import/export of your data from other systems.
  • To store streams of events durably and reliably for as long as you
    want.
  • To process streams of events as they occur or retrospectively.

And all this functionality is provided in a distributed, highly scalable, elastic, fault-tolerant, and secure manner. Kafka can be deployed on bare-metal hardware, virtual machines, and containers, and on-premises as well as in the cloud. You can choose between self-managing your Kafka environments and using fully managed services offered by a variety of vendors.

2、kafka是如何工作的:

  • Kafka 是一个由服务器和客户端组成的分布式系统,它们通过高性能 TCP 网络协议进行通信。
  • Services:Kafka 作为一个或多个服务器的集群运行,这些服务器可以跨越多个数据中心或云区域。 其中一些服务器形成存储层,称为代理。其他服务器运行 Kafka Connect 以将数据作为事件流持续导入和导出,以将 Kafka 与您现有的系统(如关系数据库以及其他Kafka 集群)集成。 为了让您实现关键任务用例,Kafka集群具有高度可扩展性和容错性:如果其中任何一个服务器出现故障,其他服务器将接管它们的工作,以确保持续运行而不会丢失任何数据。
  • Clients:它们允许您编写分布式应用程序和微服务,以并行、大规模和容错方式读取、写入和处理事件流,即使在网络问题或机器故障的情况下也是如此。 Kafka 附带了一些这样的客户端,这些客户端由 Kafka 社区提供的数十个客户端进行了扩充:客户端可用于 Java 和 Scala,包括更高级别的 Kafka Streams 库,用于 Go、Python、C/C++ 和许多其他编程 语言以及 REST API。
  • 生产者是那些向 Kafka 发布(写入)事件的客户端应用程序,而消费者是订阅(读取和处理)这些事件的那些客户端应用程序。 在 Kafka 中,生产者和消费者完全解耦并且彼此不可知,这是实现 Kafka 众所周知的高可扩展性的关键设计元素。 例如,生产者永远不需要等待消费者。 Kafka 提供了各种保证,例如一次性处理事件的能力。
  • events存储在topics中,topics类似文件夹,events类似于文件夹中的文件;events被消费之后不会被删除,可以自己设置events被保留多久。
  • topics是分区的,这意味着topic分布在位于不同 Kafka broker上的多个“桶”中。 数据的这种分布式放置对于可伸缩性非常重要,因为它允许客户端应用程序同时从多个代理读取和写入数据。 当一个新事件发布到一个topic时,它实际上是加到topic的分区之一。 具有相同事件键(例如,客户或车辆 ID)的事件被写入同一个分区,并且 Kafka 保证给定topic分区的任何消费者将始终以与写入事件完全相同的顺序读取该分区的事件。

【学习笔记】Java——消息队列kafka
every topic can be replicated, even across geo-regions or datacenters

3、Kafka APIS:

除了用于管理和管理任务的命令行工具外,Kafka 还具有五个用于 Java 和 Scala 的核心 API:
(1)管理和检查topics、brokers和其他 Kafka 对象的 Admin API
(2)The Producer API to publish (write) a stream of events to one or more Kafka topics.
(3)The Consumer API to subscribe to (read) one or more topics and to process the stream of events produced to them.
(4)用于实现流处理应用程序和微服务的 Kafka Streams API。 它提供了更高级别的函数来处理事件流,包括转换、聚合和连接等有状态操作、窗口化、基于事件时间的处理等等。 从一个或多个topics读取输入以生成一个或多个topics的输出,有效地将输入流转换为输出流。
(5)Kafka Connect API 用于构建和运行可重用的数据导入/导出连接器,这些连接器从外部系统和应用程序消费(读取)或产生(写入)事件流,以便它们可以与 Kafka 集成。 例如,与 PostgreSQL 等关系数据库的连接器可能会捕获对一组表的每次更改。 但是,在实践中,您通常不需要实现自己的连接器,因为 Kafka 社区已经提供了数百个即用型连接器。

4、kafka集群

集群模式文章来源地址https://www.toymoban.com/news/detail-494409.html

到了这里,关于【学习笔记】Java——消息队列kafka的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Kafka】消息队列Kafka基础

      消息队列,经常缩写为MQ。从字面上来理解,消息队列是一种用来存储消息的队列。例如Java中的队列:   上述代码,创建了一个队列,先往队列中添加了一个消息,然后又从队列中取出了一个消息。这说明了队列是可以用来存取消息的。我们可以简单理解消息队列就是

    2024年02月16日
    浏览(48)
  • 分布式 - 消息队列Kafka:Kafka生产者发送消息的方式

    不管是把Kafka作为消息队列、消息总线还是数据存储平台,总是需要一个可以往Kafka写入数据的生产者、一个可以从Kafka读取数据的消费者,或者一个兼具两种角色的应用程序。 Kafka 生产者是指使用 Apache Kafka 消息系统的应用程序,它们负责将消息发送到 Kafka 集群中的一个或多

    2024年02月13日
    浏览(40)
  • 分布式 - 消息队列Kafka:Kafka 消费者消息消费与参数配置

    01. 创建消费者 在读取消息之前,需要先创建一个KafkaConsumer对象。创建KafkaConsumer对象与创建KafkaProducer对象非常相似——把想要传给消费者的属性放在Properties对象里。 为简单起见,这里只提供4个必要的属性:bootstrap.servers、key.deserializer 和 value.deserializer。 ① bootstrap.servers 指

    2024年02月12日
    浏览(42)
  • 分布式 - 消息队列Kafka:Kafka生产者发送消息的分区策略

    01. Kafka 分区的作用 分区的作用就是提供负载均衡的能力,或者说对数据进行分区的主要原因,就是为了实现系统的高伸缩性。不同的分区能够被放置到不同节点的机器上,而数据的读写操作也都是针对分区这个粒度而进行的,这样每个节点的机器都能独立地执行各自分区的

    2024年02月13日
    浏览(50)
  • 消息队列 Kafka

    Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ,Message Queue),主要应用于大数据实时处理领域 在高并发环境下,同步请求来不及处理会发生堵塞,从而触发too many connection错误,引发雪崩效应。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过

    2024年02月07日
    浏览(38)
  • 消息队列——kafka基础

    首先自然是要列出Kafka官网地址啦:https://kafka.apache.org/ 概述 定义 发布/订阅模式 ​ 原文链接:https://blog.csdn.net/tjvictor/article/details/5223309 ​ 定义了一种 一对多 的依赖关系,让 多个订阅者对象同时监听某一个主题对象 。这个主题对象在自身状态变化时,会通知所有订阅者对

    2024年02月04日
    浏览(40)
  • 消息队列之王——Kafka

        在学习kafka之前,我们需要先学习 Zookeeper ,那Zookeeper是什么呢? Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。         Zookeeper从 设计模式 角度来理解:是一个基于观察者模式设计的 分布式服务管理框架 ,它 负责存储和管理 大家都关心

    2024年01月23日
    浏览(40)
  • 分布式 - 消息队列Kafka:Kafka生产者发送消息的3种方式

    不管是把Kafka作为消息队列、消息总线还是数据存储平台,总是需要一个可以往Kafka写入数据的生产者、一个可以从Kafka读取数据的消费者,或者一个兼具两种角色的应用程序。 Kafka 生产者是指使用 Apache Kafka 消息系统的应用程序,它们负责将消息发送到 Kafka 集群中的一个或多

    2024年02月13日
    浏览(45)
  • Kafka源码解析之SocketServer,kafka消息队列面试题

    ======================================================================= Kafka处理请求不区分优先级,但这种绝对公平的策略有时会发生问题。 比如:创建一个单分区双副本的主题,当时集群中的Broker A机器保存了分区的Leader副本,Broker B保存了Follower副本。突然业务激增,Broker A瞬间积压大量

    2024年04月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包