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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/729588.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为手机怎么找回删除的照片?掌握3个方法,恢复不是梦

由于误删、设备故障、软件更新等原因,我们有时可能会不慎丢失这些宝贵的照片。当面对空空如也的相册时,那种失落感无法言喻。华为手机该怎么找回删除的照片呢?但是,请不要绝望!在科技的帮助下,我们可以采取…

记忆化搜索——AcWing 901. 滑雪

记忆化搜索 定义 记忆化搜索是一种结合了搜索和动态规划思想的方法。它通过将已经计算过的结果存储起来,在后续遇到相同情况时直接返回存储的结果,避免重复计算。 运用情况 当问题可以用递归方式求解,但存在大量重复计算时。一些复杂的组…

Unity核心

回顾 Unity核心学习的主要内容 项目展示 基础知识 认识模型制作流程 2D相关 图片导入设置相关 图片导入概述 参数设置——纹理类型 参数设置——纹理形状 参数设置——高级设置 参数设置——平铺拉伸 参数设置——平台设置(非常重要) Sprite Sprite Edit…

JavaSE 面向对象程序设计进阶 抽象类和接口 2024年详解

目录 抽象类 抽象方法 抽象类和抽象方法的注意事项 ​编辑 接口 如何定义接口 注意 代码实现 ​编辑 接口中的成员特点 接口和类之间的关系 1.类与类的关系 2.类与接口的关系 3.接口与接口的关系 ​编辑 拓展 接口中的默认方法 接口中的静态方法 ​编辑 接口…

网站配置https,购买ssl证书,配置域名,配置nginx,实现安全访问

文章目录 前言一. 域名1. 购买域名2. 添加记录 二. ssl证书创建测试证书购买正式证书证书签发证书申请提交审核DNS验证审核通过下载证书 三. 部署nginx上传ssl证书配置nginx.conf文件找到nginx.conf文件编辑nginx.conf文件重启nginx 前言 当你创建了一个网站后,通过…

73. UE5 RPG 优化投射物以及敌人生成

解决发射物会与地面产生交互的问题 之前一直遇到发射物的体积过大会在发射时,和地面产生交互,我们可以调整小一些,然后为了防止它和自身产生交互事件。我们可以实现它在生成后,不会触发相关事件,而是在一定时间后。 对…

振弦式渗压计在土木工程安全监测中的重要性解析

在土木工程领域中,特别是涉及到坝体、隧道、路基等复杂结构的监测与安全管理时,渗压计作为一种关键的测量工具,发挥着举足轻重的作用。其中,振弦式渗压计以其独特的优点,得到了广泛的应用和认可。本文将对振弦式渗压计…

一文读懂 HTTP 和 RPC 的区别

随着互联网技术的发展,网络通信在各种应用中扮演着至关重要的角色。无论是构建 Web 应用还是进行服务之间的交互,选择合适的通讯协议成为开发者们需要深入思考的问题。在众多协议中,HTTP(HyperText Transfer Protocol)…

【IEEE ACCESS】论文发表记录 2

上次发IEEE ACCESS 感觉不错,速度较快,审稿费也不太夸张,这次梅开二度,希望好运。 官网:IEEE Access: The Multidisciplinary Open Access Journal 期刊水平: 范围认证 -中国科学院文献情报中心期刊分区表…

VBA学习(13):获取多层文件夹内文件名并建立超链接

代码使用了FileSystemObject对象和递归的方法实现文件夹和文件的遍历功能。分别将文件夹名称和文件名提取在表格的A/B列,并对文件名创建了超链接。 示例代码如下: Sub AutoAddLink()Dim strFldPath As StringWith Application.FileDialog(msoFileDialog…

好用的便签是什么 电脑桌面上好用的便签

作为一名文字工作者,我经常需要在繁杂的思绪中捕捉灵感,记录下那些一闪而过的想法。在寻找一款适合电脑桌面的便签应用时,我偶然发现了敬业签便签软件简直是为我量身定制的,它不仅界面简洁,操作便捷,更重要…

中国计算机学会芯片大会 (CCF Chip 2024)

🌟 中国计算机学会芯片大会(CCF Chip Conference,简称:CCF Chip) 将于📅 2024年7月19日至21日在上海市松江区上海富悦大酒店召开。 🎉 #CCF Chip 2024# 主题前瞻:"发展芯技术,智算芯未来&q…

【Java】已解决java.net.HttpRetryException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例 已解决java.net.HttpRetryException异常 在Java的网络编程中,尤其是使用Apache HttpClient或其他类似的HTTP客户端库时,可能会遇到java.net.HttpRetryException异常。这个…

MMDetection 目标检测 —— 环境搭建和基础使用

参考文档 开始你的第一步 — MMDetection 3.3.0 文档 依赖 步骤 0. 下载并安装 Anaconda。 步骤 1. 创建并激活一个 conda 环境。(我选择的是python3.10) conda create --name openmmlab python3.8 -y conda activate openmmlab 步骤 2. 基于 PyTo…

Spring Boot基础入门

引言 Spring Boot是一个开源的Java框架,旨在简化Spring应用程序的创建和部署过程。它提供了一种快速和简便的方式来创建独立的、生产级别的基于Spring的应用程序。本文将介绍Spring Boot的基础知识,包括其核心特性、如何开始使用Spring Boot以及构建你的…

将强化学习重新引入 RLHF

我们很高兴在 TRL 中介绍 RLOO (REINFORCE Leave One-Out) 训练器。作为一种替代 PPO 的方法,RLOO 是一种新的在线 RLHF 训练算法,旨在使其更易于访问和实施。特别是, RLOO 需要的 GPU 内存更少,并且达到收敛所需的挂钟时间也更短…

01 Shell编程规范与变量

1、Shell脚本概述 在一些复杂的Linux维护工作中,大量的重复性的输入和交互操作不仅费力费时,而且容易出错,而编写一个恰到好处的Shell脚本程序,可以批量处理、自动化地完成一系列维护任务,大大减轻管理员的负担。 Sh…

【CT】LeetCode手撕—54. 螺旋矩阵

目录 题目1- 思路2- 实现⭐54. 螺旋矩阵——题解思路 3- ACM实现 题目 原题连接&#xff1a;92. 反转链表 II 1- 思路 模式识别&#xff1a;螺旋矩阵 ——> 用四个指针来顺时针遍历 2- 实现 ⭐54. 螺旋矩阵——题解思路 class Solution {public List<Integer> spir…

RuoYi Swagger请求401

问题描述&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 使用ruoyi-vue分离版&#xff0c;访问swagger&#xff0c;发现接口都调用失败&#xff1a;401 解决方案&#xff1a; 最终解决问题如下步骤&#xff1a; 1、 调用swagger中的接口&#xff0c;报错&a…

QT MQTT (二)编译与集成

一、QT MQTT 提供 MQTT 客户端服务的 Qt 专用库基于标准化发布 / 订阅协议&#xff0c;用于在设备和组件之间可靠地共享数据。MQTT 是为保证状态正确性、满足高安全标准和交换最小数据而设计的协议&#xff0c;因此被广泛应用于各种分布式系统和物联网解决方案中。 Qt开发MQT…