kafka的基本模型

kafka官网

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

在jvm里不同的线程有自己的栈内存,但彼此之间交互可以在共享的内存中进行,即堆内存,堆内存会将这些消息放到队列中,具体实现jvm见,栈内存各自维护,堆内存大家共享

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

不同的进程在服务器上启动的时候,中间通过socket和websocket进行交互。

可能会产生的问题:

①产生和消费的速度不对等,内存/磁盘作为稀有资源会不够用,从而产生消息积压的问题,可能通过文件存储的方式解决

②要对消息进行处理,可能一条消息发给多个进程,也可能一条消息切割为多部分被多个进程消费此时就需要一个中间件,进行消息的缓冲处理,称为消息中间件。

③使用消息中间件也可避免生产者和消费者的直连,降低系统的耦合性,提高可用性和可拓展性

MQ的简介

Java中消息产生,发送到MQ软件中,发送消息的被称为Producer(消息提供者),接收消息的被称为Consumer(消息消费者),MQ软件中一般用队列处理消息,消息一般包含消息头、消息属性、消息主题内容。

P2P模型

(Publish-Subscribe)相当于是一对一,一条消息一个人发送,只能被一个人接收。

PS模型

即是消息的发布和订阅模型

kafka借鉴了JMS模型,但不完全遵循,所以虽然是消息中间件,但不同于RabbitMQ、ActiveMQ、RocketMQ命名中带Message Queue,kafka中的消息message一般称之为record,JMS Provider一般称之为Kafka Broker,保证消费顺序的索引称之为偏移量offset

kafka的基本组件,app调用kafka的producer和consumer进行消息的传递和读取,其中kafka自身是通过broker代理进行这些消息的处理, broker中的消息想要进行有序处理,通过偏移量实现也就是offset。

相关推荐
Wang's Blog2 小时前
Kafka: 高吞吐量原理、应用场景
分布式·kafka
东东的脑洞2 小时前
【面试突击】Kafka 核心面试知识点
面试·职场和发展·kafka
@淡 定4 小时前
主流消息队列对比:Kafka vs RabbitMQ vs RocketMQ
kafka·rabbitmq·rocketmq
Wang's Blog4 小时前
Kafka: 消费者限流策略与再平衡机制深度解析
分布式·kafka
xiaoshujiaa1 天前
Java大厂面试实录:谢飞机硬刚互联网医疗微服务架构,Spring Cloud+Redis+Kafka全踩坑
spring boot·redis·微服务·kafka·flyway·java面试·互联网医疗
yours_Gabriel1 天前
【kafka】基本概念
分布式·中间件·kafka
Wang's Blog1 天前
Kafka: Admin 客户端操作指南之主题管理与集群监控
分布式·kafka
Wang's Blog1 天前
Kafka: AdminClient 核心操作详解之Topic 信息查询、配置修改与分区管理
分布式·kafka
Wang's Blog2 天前
Kafka: 分布式配置管理的核心挑战
分布式·kafka
Wang's Blog2 天前
Kafka: 生产环境配置优化与服务器最佳实践指南
服务器·kafka