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

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是不错的选择。

4、kafka的原理图

在kafka中,通过偏移量的方式标记每个消息,来确保消息的顺序性。

相关推荐
kkkkkkkkkk_Z2 小时前
学嵌入式和C语言编程数据结构|学习日记Day22:栈,二叉树,哈希存储
c语言·数据结构·学习
for_ever_love__5 小时前
python基础语法学习: 闭包
开发语言·python·学习·闭包
剑胆琴心静水深流5 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
皮卡丘不断更6 小时前
从遥操作示范到可复现训练:LeRobot 0.6.1 的机器人学习工作流
人工智能·学习·机器人·开源·开发工具
IZero077 小时前
Elasticsearch 学习笔记筑基-文档操作篇
笔记·学习·elasticsearch
小白说大模型8 小时前
AI驱动的个性化学习路径:知识图谱与知识点关联的存储与推理
大数据·人工智能·学习·mysql·机器学习·prompt·知识图谱
吃好睡好便好8 小时前
三伏天结束了
学习·生活·毕淑敏·心理游戏
xiamo@moment9 小时前
kafka学习笔记-概念总集
运维·kafka
2501_931819709 小时前
方言标注标准化模板迭代优化诉求 泸州话标注公司学习信实翻译模板迭代方法论
学习
KAIWEILIUCC9 小时前
Ray:高性能、易扩展的Python分布式计算框架
分布式·llm