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中,通过偏移量的方式标记每个消息,来确保消息的顺序性。

相关推荐
菜菜小狗的学习笔记3 分钟前
黑马程序员java web学习笔记--后端实战(六)登录认证--JWT令牌、Filter
笔记·学习
像少年啦飞驰点、7 分钟前
Java大厂面试真题:Spring Boot + Kafka + Redis 在电商场景下的实战应用
java·spring boot·redis·分布式·kafka·面试题·电商秒杀
xian_wwq8 分钟前
【学习笔记】2026年网络安全进入 “强监管 + 高智能” 时代
笔记·学习·强监督·高智能
hkNaruto15 分钟前
【AI】AI学习笔记:翻译langGraph 中断 human-in-loop
笔记·学习
星幻元宇VR21 分钟前
青少年法治展厅设备【青少年法律知识学习系统】
学习·安全·虚拟现实
Engineer邓祥浩23 分钟前
设计模式学习(19) 23-17 观察者模式
学习·观察者模式·设计模式
如果你想拥有什么先让自己配得上拥有24 分钟前
向师傅学习的黄金和斐波总结二
学习
云边散步24 分钟前
godot2D游戏教程系列一(8)
笔记·学习·音视频
楼田莉子28 分钟前
CMake学习:入门及其下载配置
开发语言·c++·vscode·后端·学习
2501_9011478344 分钟前
组合总和IV——动态规划与高性能优化学习笔记
学习·算法·面试·职场和发展·性能优化·动态规划·求职招聘