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

news2024/11/26 22:51:32

kafka

      • 1、Kafka combines three key capabilities:
      • 2、kafka是如何工作的:
      • 3、Kafka APIS:
      • 4、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分区的任何消费者将始终以与写入事件完全相同的顺序读取该分区的事件。

在这里插入图片描述
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集群

集群模式

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

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

相关文章

中国游戏等“春”来

对于游戏行业来说,2023年将是压力依旧的一年,但或许也是转型调优的希望之年。 压力在于,互联网流量见顶,用户付费意愿降低,行业整体进入下行周期,彻底进入存量竞争时代。《2022年中国游戏产业报告》显示&a…

相机标定实战之双目标定

相机标定原理 文章目录 相机标定原理前言一、采集图像二、基于Matlab单双目标定流程采集棋盘图 三、基于OpenCV-Python双目标定流程检测棋盘格角点对角点进行亚像素精细化单目标定双目标定双目校正保存标定参数读取标定参数代码示例 参考 前言 相机标定可以说是计算机视觉/机器…

哪个公司的 CEO 不想拥有一个自己的数字克隆?

⚠️ FBI Warning:本文纯属作者自娱自乐,数字人的观点不代表 CEO 本人的观点,请大家不要上当受骗!! 哪个公司的 CEO 不想拥有一个自己的数字克隆? 想象🤔一下,如果 CEO 数字克隆上线…

python基础语法总结

1.打印输出 print(“Hello World”) 在许多大众的编程语言中,需要在每个语句的末尾添加分号,但Python并非如此。Python是一种简洁的编程语言,你不需要添加不必要的字符和语法。在Python中,一条语句结束于一行的结尾(方括号&…

找不到msvcp120dll,无法继续执行代码的修复方法

本教程操作系统:Windows系统、 msvcp120.dll是电脑文件中的dll文件(动态链接库文件)。如果计算机中丢失了某个dll文件,可能会导致某些软件和游戏等程序无法正常启动运行,并且导致电脑系统弹窗报错。 msvcp120.dll文件…

IDEA整合GO并创建module工程

IDEA整合Go 安装包环境配置idea配置并创建test mode 安装包 1.去官网下载对应还的安装包 官网下载地址 我选择下载的window 版本: 直接按照对应的目录,然后点击下一步 环境配置 1.配置go环境变量 在高级环境变量PAHT中添加安装包的**/bin 目录&…

mysql数据库的基础

mysql数据库 一、数据库的基本概念二、关系数据库三、SQL语句增改查删 四、natvicat for mysql软件 一、数据库的基本概念 数据(data) 描述事物的符号记录包括数字、文字、图形、图像、声音、档案记录等以“记录”形式按统一的格式进行存储 表&#x…

基于Java少儿编程网上报名系统设计与实现(源码+lw+部署文档+讲解等)

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…

sizeof 和 strlen !!!

定义 sizeof()是单目操作符,是可以求变量(类型)所占空间的大小,不在乎内存中存放的是什么,只在乎内存大小 strlen()是函数,是计算字符串的长度的 它从内存的某个位置(可以是字符串开头&#x…

进程管道:pipe调用

在看过高级的popen函数之后&#xff0c;我们再来看看底层的pipe函数。通过这个函数在两个程序之间传递数据不需要启动一个shell来解释请求的命令。它同时还提供了对读写数据的更多控制。pipe函数的原型如下所示&#xff1a; #include <unistd.h> int pipe(int pipefd[2])…

OS的事件机制-Event

Event在OSEK OS中&#xff0c;其实就是一个flag的作用&#xff0c;如果某个TASK执行了&#xff0c;就调用<SetEvent()>把flag就置起来&#xff0c;和这个task关联的另一个TASK也执行了&#xff0c;就可以把flag清掉<ClearEvent>&#xff0c;如果第一个TASK没有执行…

这才是你想了解的Redis

文章简介 redis作为一个基于内存的数据结构存储系统&#xff0c;由于它的灵活性和可拓展性强&#xff0c;在我们日常开发中经常被用作数据库、缓存或者消息代理。本文就从Redis的基本部署使用说到Redis的集群、锁和消息对列 Redis基本使用 一、安装 下载地址&#xff1a;htt…

mySql 储存过程 多个结果返回解析

当需要查询复杂的数据模型并返回多个结果集时&#xff0c;使用 MySQL 存储过程可以有效地优化性能。同时&#xff0c;在开发中使用 Mybatis 可以方便地调用 MySQL 存储过程并获取多个结果集。本文将介绍如何在 Mybatis 中调用 MySQL 存储过程&#xff0c;并获取多个结果集。 1、…

Java并发之原子类

一、原子类简介 1 什么是原子类 Java中提供了一些原子类&#xff0c;原子类包装了一个变量&#xff0c;并且提供了一系列对变量进行原子性操作的方法。原子性的意思是对于一组操作&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败&#xff0c;不能只有其中某几个执…

基础知识学习---牛客网C++面试宝典(三)C/C++基础之面向对象

1、本栏用来记录社招找工作过程中的内容&#xff0c;包括基础知识学习以及面试问题的记录等&#xff0c;以便于后续个人回顾学习&#xff1b; 暂时只有2023年3月份&#xff0c;第一次社招找工作的过程&#xff1b; 2、个人经历&#xff1a; 研究生期间课题是SLAM在无人机上的应…

测试新手百科:Postman简介、安装、入门使用方法详细攻略!

本文关键词&#xff1a;Postman基础 目录 一、Postman背景介绍 二、Postman的操作环境 三、Postman下载安装 四、Postman的基础功能 五、接口请求流程 六、管理用例—Collections 七、身份验证Authentication 一、Postman背景介绍 用户在开发或者调试网络程序或者是网…

【答题】在线答卷-答题系统的微信小程序开发流程详解

用死记硬背的方法学习的学生&#xff0c;面对桌上堆积成厚厚的书本&#xff0c;是否感觉鸭梨山大呢&#xff0c;想着教育却面临着学习成本不小问题&#xff0c;是否感觉各种不便呢&#xff0c;如果对编程代码有感兴趣&#xff0c;不妨试试做一个自己的在线答题系统&#xff0c;…

有效性常见标志词

有效性常见标志词 混淆概念常见标志词 &#xff08; 1 &#xff09; 既然…那么… &#xff08; 2 &#xff09; 也就是说… &#xff08; 3 &#xff09; 很显然… &#xff08; 4 &#xff09; 因为A 就是B…所以… &#xff08; 5 &#xff09; 某主体A 是 &#xff0c;…

低代码01之构建项目框架

目录 低代码之构建框架11&#xff1a;项目初始化2&#xff1a;src / data.json 数据 &#xff08; 容器大小与渲染的表单数据 &#xff09;3&#xff1a;App.vue ( 导入editor组件传递data.json之中的数据与 向下提供组件配置数据config )4&#xff1a;src / packages / editor…

我记不住的那些C语言的二维数组的函数传参

背景&#xff1a; 最近在复习数据结构和算法&#xff0c;顺带刷刷题&#xff0c;虽然很长时间不刷题了但还是原来熟悉的味道&#xff0c;每一次重学都是加深了上一次的理解。本次我们看一下如何将C语言的二维数组进行函数传参&#xff0c;C语言实现。 其实这个比较简单&#x…