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。

相关推荐
Spring-wind10 小时前
【kafka】rebalance机制详解
分布式·kafka
TCChzp11 小时前
Kafka入门-监控与可视化
分布式·kafka
计算机毕设定制辅导-无忧学长13 小时前
微服务架构中的 Kafka:异步通信与服务解耦(二)
微服务·架构·kafka
计算机毕设定制辅导-无忧学长14 小时前
Kafka 消息模式实战:从简单队列到流处理(一)
分布式·kafka
vivo互联网技术14 小时前
vivo Pulsar 万亿级消息处理实践(2)-从0到1建设 Pulsar 指标监控链路
大数据·kafka·消息队列·pulsar
计算机毕设定制辅导-无忧学长15 小时前
微服务架构中的 Kafka:异步通信与服务解耦(一)
微服务·架构·kafka
lifallen16 小时前
Java Kafka消费者
java·开发语言·分布式·kafka
嫄码1 天前
kafka快速入门与知识汇总
java·大数据·分布式·中间件·kafka·linq
会飞的架狗师1 天前
【面试题】如何保证MQ的消息不丢失、不重复
java·面试·kafka·java-rocketmq