kafka学习1 - 线程、进程消息通信方式、JMS模型、Kafka原理图

ops/2024/10/4 17:31:06/

1、线程和线程之间的数据交互

两个不同的线程之间是可以通过堆内存的方式进行数据交互的;
T1线程的数据发送得到堆内存,T2线程就可以共享堆内存的数据。
在这里插入图片描述
存在的问题:
在这里插入图片描述
T1线程发送数据的速率是50/s,T2线程消费的速率是30/s,消费的速率小于生产的速率,就会有大量的数据积压在堆内存或者磁盘文件上,时间长了后,积压的数据就会越来越多,导致影响整个流程的性能。

2、进程和进程之间的数据交互

在这里插入图片描述
进程与进程之间的通信可以通过消息中间件的方式

3、Java中实现消息传输的方式[JMS]

Java Message Service
原理图:
在这里插入图片描述

1、点对点模式【P2P模式】

这种模式是一个消息只能发送给一个消费者消费,其他消费者是接收不到的,消费者接收到消息后会反馈给Provider生产者说明消息已被接受到,消息被消费完后就会丢失。
在这里插入图片描述

2、发布-订阅模式【PS模式】

在这里插入图片描述
发布-订阅模式是消费者订阅某个主题的消息,主题的消息可以被多个消费者订阅消费。

ActiveMQ、RabbitMQ、RocketMQ是遵循JMS规范的;Kafka是部分遵循JMS的规范

在大数据场景中我们主要采用kafka作为消息中间件,而在javaEE开发中我们主要采用ActiveMQ、RabbitMQ、RocketMQ作为消息中间件。如果JavaEE和大数据在项目中进行融合,那么kafka是不错的选择。

kafka_29">4、kafka的原理图

在这里插入图片描述
kafka中,通过偏移量的方式标记每个消息,来确保消息的顺序性。


http://www.ppmy.cn/ops/20666.html

相关文章

TCP流套接字编程

TCP流套接字编程 ServerSocket API ServerSocket 是专门给服务器使用的 Socket 对象。 构造方法 方法签名 方法说明 ServerSocket (int port) 创建一个服务端流套接字Socket,并绑定到指定端口 普通方法 方法签名 方法说明 Socket accept() 开始监听指定…

PotatoPie 4.0 实验教程(21) —— FPGA实现摄像头图像二值化(RGB2Gray2Bin)

PotatoPie 4.0开发板教程目录(2024/04/21) 为什么要进行图像的二值化? 当我们处理图像时,常常需要将其转换为二值图像。这是因为在很多应用中,我们只对图像中的某些特定部分感兴趣,而不需要考虑所有像素的…

HarmonyOS NEXT应用开发性能优化从入门到精通指南~

概述 在开发HarmonyOS NEXT应用时,优化应用性能是至关重要的。本文将介绍应用开发过程中常见的一些性能问题,并提供相应的解决方案,配合相关参考示例,帮助开发者解决大部分性能问题。 我们把应用性能分析的方法划分为了性能分析…

前端工程化Vue使用Node.js设置国内高速npm镜像源(踩坑记录版)

前端工程化Vue使用Node.js设置国内高速npm镜像源(踩坑记录版) 此篇仅为踩坑记录,并未成功更换高速镜像源,实际解决方法见文末跳转链接。 1.自身源镜像 自身镜像源创建Vue项目下载速度感人 2.更改镜像源 2.1 通过命令行配置 前提…

磁性呼吸传感技术与机器学习结合在COVID-19审断中的应用

介绍 呼吸不仅是人类生存的基础,而且其模式也是评估个体健康状态的关键指标。异常的呼吸模式往往是呼吸系统疾病的一个警示信号,包括但不限于慢性阻塞性肺病(COPD)、阻塞性睡眠呼吸暂停(OSA)、肺炎、囊性纤…

基于ssm + 小程序的党建考试系统实现与设计(源码+数据库+文档)

基于ssm 小程序的“党建考试系统”实现与设计(源码数据库文档) 开发语言:Java数据库:MySQL技术:SpringmvcSpringMybatis、vue、小程序工具:IDEA/Ecilpse、Navicat、Maven 系统展示 管理系统-登录界面展示 管理系统…

Jenkins - macOS 上安装

文章目录 关于 JenkinsmacOS 上安装 Jenkins方式一:brew方式二:tomcat Jenkins war 关于 Jenkins 官网上下载Jenkins并将其安装到持续集成服务器 https://jenkins.io/download/ macOS 上安装 Jenkins 现在本 macOS 上测试 https://www.jenkins.io/do…

db2 export

DB2的EXPORT命令用于将数据从数据库表导出到外部文件。以下是EXPORT命令的基本语法和一些常见的用法&#xff1a; ### 基本语法&#xff1a; sql EXPORT TO <filename> OF <filetype> LOBS TO <lob-path> LOBFILE <lob-filename> XML TO <xml-path…