当前位置: 首页 > news >正文

JMS和消息中间件:Kafka/RocketMQ

文章目录

    • 消息传递模型
    • 使用JMS还是Kafka
    • Kafka与RocketMQ的优缺点
    • Kafka与RocketMQ的使用场景
    • Kafka与RocketMQ的选型指南

TPM 项目中, iflow之间使用了JMS,后端项目与数据库通信使用Kafka

MQ和JMS的区别:
JMS是 java 用来处理消息的一个API规范。市面上绝大数 MOM(Message-Oriented Middleware 消息中间件)都支持.
MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。

目前主流的 MQ 主要是 RocketMQ、kafka、RabbitMQ,ActiveMQ

消息传递模型

○ JMS
■ 支持两种主要的消息传递模型:
■ 点对点(P2P)模型:消息生产者将消息发送到一个特定的队列,每个消息只有一个消费者能够接收和处理。这种模型适用于任务分配的场景,例如在一个任务调度系统中,任务生产者将任务消息发送到队列,一个任务执行器作为消费者从队列中获取任务并执行。
■ 发布 / 订阅(Pub/Sub)模型:消息生产者将消息发布到一个主题,多个消息消费者可以订阅这个主题来接收消息。这类似于广播系统,例如在一个新闻发布系统中,新闻生产者将新闻消息发布到主题,多个订阅用户(如新闻客户端)可以接收新闻消息。
○ Kafka
■ 主要基于发布 / 订阅模型,但它也具有一些独特的特点。在 Kafka 中,消息被存储在主题(Topic)下的分区中,消费者可以订阅主题来获取消息。而且消费者可以通过消费者组(Consumer Group)的方式进行组织。同一个消费者组中的消费者共同分担对消息的消费,不同消费者组之间相互独立,都可以完整地消费主题中的消息。例如,在一个数据收集和分析系统中,多个数据收集客户端作为生产者将数据发送到 Kafka 主题,不同的数据分析团队可以组成不同的消费者组从主题中获取数据进行分析。

使用JMS还是Kafka

  1. 应用场景和需求特点
    ○ 简单的异步消息传递场景(选择 JMS)
    ■ 如果你的应用场景主要是在 Java 应用程序之间进行简单的异步通信,并且不需要处理大规模的数据流,JMS 可能是一个合适的选择。例如,在一个小型企业内部的员工任务管理系统中,任务分配模块作为消息生产者将任务消息发送到消息队列(基于 JMS),员工对应的任务处理客户端作为消息消费者从队列中获取任务消息。这种场景下,消息量相对较小,主要关注的是消息的可靠传递和异步处理。
    ○ 大规模实时数据处理场景(选择 Kafka)
    ■ 当需要处理海量的实时数据,如互联网公司的用户行为数据收集、日志处理等场景,Kafka 是更好的选择。以一个大型电商网站为例,每秒可能有成千上万的用户浏览商品、下单等行为,这些行为数据可以作为实时数据流发送到 Kafka 集群。Kafka 能够高效地接收、存储这些数据,并为后续的数据分析、推荐系统等提供数据支持,其分布式架构和高吞吐量的特点可以很好地应对这种大规模的数据处理需求。
  2. 消息传递模型偏好
    ○ 点对点模型主导的场景(倾向 JMS)
    ■ 如果你的应用场景主要依赖点对点的消息传递模型,JMS 的实现可能更符合你的需求。例如,在一个订单处理系统中,订单生成模块将订单消息发送到特定的队列,库存管理模块作为唯一的消费者从队列中获取订单消息来更新库存。这种一对一的消息传递方式在 JMS 中通过队列实现得较为简单直接,而且 JMS 对这种模型的支持历史悠久,相关的事务处理等机制也比较成熟。
    ○ 发布 / 订阅和消费者组应用场景(倾向 Kafka)
    ■ 对于需要灵活运用发布 / 订阅模型并且涉及消费者组的场景,Kafka 具有明显的优势。例如,在一个新闻媒体公司的内容分发系统中,新闻编辑部门作为生产者将新闻消息发布到 Kafka 主题,不同的终端设备(如手机应用、网页浏览器等)可以根据用户的订阅情况组成不同的消费者组从主题中获取新闻消息进行展示。消费者组的设置可以方便地对消息消费进行负载均衡和灵活分配,这是 Kafka 在这种复杂的发布 / 订阅场景中的一个重要优势。
  3. 可靠性和数据持久化要求
    ○ 高可靠性但传统事务处理需求(JMS 可能更合适)
    ■ 如果你的应用对消息传递的可靠性要求很高,并且需要传统的事务处理机制,如在金融领域的交易指令传递等场景,一些 JMS 实现可能更能满足需求。JMS 消息中间件通常提供了成熟的消息确认机制,如自动确认、客户端确认等,并且可以通过与数据库等存储系统结合来实现消息的持久化存储,以确保消息在传递过程中不会丢失,同时保证事务的完整性。
    ○ 高可靠性和大规模数据持久化(Kafka 优势明显)
    ■ 当需要对海量数据进行持久化存储并且保证高可靠性时,Kafka 的优势就体现出来了。例如,在一个云存储服务公司的数据备份系统中,大量的用户文件数据需要进行持久化存储并且要保证数据的安全性和可用性。Kafka 的多副本机制可以确保数据在多个代理(Broker)之间进行备份,并且通过将消息持久化存储在磁盘分区上,能够有效防止数据丢失,同时还能提供高效的数据访问。
  4. 性能和延迟要求
    ○ 对低延迟要求不高,中等性能场景(JMS 可以胜任)
    ■ 如果你的应用对消息传递的延迟要求不是特别严格,并且性能需求处于中等水平,JMS 可能能够满足要求。例如,在一个企业内部的邮件通知系统中,新邮件到达的通知消息通过 JMS 发送到用户的客户端,这里对消息传递的延迟可以容忍几秒甚至更长时间,JMS 在这种场景下可以通过合适的消息中间件实现可靠的消息传递。
    ○ 低延迟、高吞吐量性能需求(Kafka 是优选)
    ■ 对于那些需要在高并发情况下实现低延迟和高吞吐量的应用,如实时竞价系统、物联网数据采集等场景,Kafka 是更好的选择。在物联网场景中,大量的传感器设备需要实时将数据发送到服务器进行处理,Kafka 通过异步发送消息、零拷贝技术等手段能够快速接收和处理这些数据,满足低延迟和高吞吐量的要求。

Kafka与RocketMQ的优缺点

1. Kafka

优点:

高吞吐量:Kafka能够处理每秒数百万条消息,适合大规模数据流处理。
水平扩展性:通过分区机制,Kafka可以轻松扩展,支持大规模分布式部署。
持久化存储:Kafka将消息持久化到磁盘,确保数据的可靠性和持久性。
高可用性:通过复制机制,Kafka能够在节点故障时继续提供服务。
低延迟:Kafka设计为低延迟系统,适合实时数据处理。
缺点:

复杂性:Kafka的部署和管理相对复杂,需要专业知识和经验。
资源占用:Kafka对硬件资源要求较高,特别是磁盘和网络带宽。
延迟一致性:Kafka采用最终一致性模型,可能导致短暂的不一致。

2. RocketMQ

优点:

高可靠性:RocketMQ支持分布式事务和多副本机制,确保消息的高可靠性。
高性能:RocketMQ在处理高并发、高吞吐量场景下表现出色。
顺序消息:RocketMQ支持严格的顺序消息,适用于需要顺序处理的业务场景。
灵活的消费模式:支持多种消费模式,包括广播消费和集群消费。
易于集成:RocketMQ提供丰富的客户端库,易于与现有系统集成。
缺点:

社区活跃度:相比Kafka,RocketMQ的社区活跃度和生态系统较弱。
运维复杂度:RocketMQ的运维和调优需要一定的经验和技巧。
文档和支持:文档和社区支持相对较少,可能需要更多的自主探索。

Kafka与RocketMQ的使用场景

Kafka使用场景:

实时数据处理:需要处理高吞吐量、低延迟的数据流,如实时日志分析、实时监控和实时推荐系统。
大数据管道:构建数据管道,将数据从不同来源高效传输到数据湖或数据仓库。
事件驱动架构:实现事件驱动的微服务架构,支持事件的发布和订阅。
日志聚合:集中收集和处理分布式系统的日志数据,进行统一分析和监控。
RocketMQ使用场景:

金融交易系统:需要高可靠性和顺序消息处理的金融交易系统。
电商平台:处理高并发订单和支付消息,确保消息的可靠传递和顺序处理。
分布式事务:支持分布式事务的业务场景,如跨服务的事务管理。
消息通知系统:实现高可靠性的消息通知和广播,如短信、邮件通知系统。

Kafka与RocketMQ的选型指南

1. 数据量与吞吐量:

高数据量、高吞吐量:选择Kafka,适合处理大规模数据流和高并发场景。
中等数据量、高可靠性:选择RocketMQ,适合需要高可靠性和顺序处理的场景。
2. 实时性与延迟:

高实时性、低延迟:选择Kafka,适合实时数据处理和低延迟应用。
严格顺序、事务支持:选择RocketMQ,适合需要严格顺序和分布式事务的应用。
3. 系统复杂性与管理:

高复杂性、专业管理:选择Kafka,需要专业团队进行部署和维护。
中等复杂性、灵活集成:选择RocketMQ,适合需要灵活集成和高可靠性的场景。
4. 持久化与可靠性:

高持久性、可靠性要求:选择Kafka,确保数据的持久化和高可用性。
高可靠性、顺序处理:选择RocketMQ,确保消息的高可靠性和顺序处理。

相关文章:

JMS和消息中间件:Kafka/RocketMQ

文章目录 消息传递模型使用JMS还是KafkaKafka与RocketMQ的优缺点Kafka与RocketMQ的使用场景Kafka与RocketMQ的选型指南 TPM 项目中, iflow之间使用了JMS,后端项目与数据库通信使用Kafka MQ和JMS的区别: JMS是 java 用来处理消息的一个API规范…...

FreeRTOS之ARM CR5栈结构操作示意图

FreeRTOS之ARM CR5栈结构操作示意图 1 FreeRTOS源码下载地址2 ARM CR5栈结构操作宏和接口2.1 portSAVE_CONTEXT宏2.1.1 portSAVE_CONTEXT源码2.1.2 portSAVE_CONTEXT宏操作栈结构变化示意图 2.2 portRESTORE_CONTEXT宏2.2.1 portRESTORE_CONTEXT源码2.2.2 portRESTORE_CONTEXT宏…...

【技巧】Mac上如何显示键盘和鼠标操作

在制作视频教程时,将键盘和鼠标的操作在屏幕上显示出来,会帮助观众更容易地理解。 推荐Mac上两款开源的小软件。 1. KeyCastr 这款工具从2009年至今一直在更新中。 https://github.com/keycastr/keycastr 安装的话,可以从Github上下载最…...

三种插入排序算法

目录 1.直接插入排序 直接插入排序的步骤示例 直接插入排序的特点 适用场景 2.折半插入排序 折半插入排序的基本原理 折半插入排序的实现过程 折半插入排序的时间复杂度 折半插入排序的特点 3.希尔排序 希尔排序的基本原理 希尔排序的步骤举例 希尔排序的时间复杂…...

力扣100题--移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: […...

第30天:安全开发-JS 应用NodeJS 指南原型链污染Express 框架功能实现审计0

时间轴: 演示案例: 环境搭建-NodeJS-解析安装&库安装 功能实现-NodeJS-数据库&文件&执行 安全问题-NodeJS-注入&RCE&原型链 案例分析-NodeJS-CTF 题目&源码审计 开发指南-NodeJS-安全 SecGuide 项目、 环境搭建-NodeJ…...

1.使用docker 部署redis Cluster模式 集群3主3从

1.使用docker 部署redis Cluster模式 集群3主3从 1.1 先安装docker 启动docker服务,拉取redis镜像 3主3从我们要在docker启动6个容器docker run --name redis-node-1 --net host --privilegedtrue -v /data/redis/share/redis-node-1:/data redis:6.0.8 --cluster-…...

SAP导出表结构并保存到Excel 源码程序

SAP导出表结构并保存到Excel,方便写代码时复制粘贴 经常做接口,需要copy表结构,找到了这样一个程程,特别有用。 01. 先看结果...

李飞飞:Agent AI 多模态交互的前沿探索

发布于:2024 年 11 月 27 日 星期三 北京 #RAG #李飞飞 #Agent #多模态 #大模型 Agent AI在多模态交互方面展现出巨大潜力,通过整合各类技术,在游戏、机器人、医疗等领域广泛应用。如游戏中优化NPC行为,机器人领域实现多模态操作等。然而,其面临数据隐私、偏见、可解释性…...

算法基础学习Day2(双指针)

文章目录 1.题目2.题目解答1.快乐数题目及题目解析算法学习代码提交 2.题目2题目及题目解析算法学习代码提交 1.题目 202. 快乐数 - 力扣(LeetCode)11. 盛最多水的容器 - 力扣(LeetCode) 2.题目解答 1.快乐数 题目及题目解析 …...

信奥常考点:二叉树的构建(已知中序和 前序或后序 的情况下)

一、题目引入 这是来自CCF-GESP C七级认证 2024年9月的题目。 我们在此不解题,只把树画出来。 CCF-GESP 编程能力认证 C 七级 2024年9月份详细解析-CSDN博客 二、解题过程 我们可以根据先序遍历得出根节点是A,然后我们得到了A的左子树[B D](橙…...

《CS2》运行时提示“缺少steam_api_64.dll”文件该如何处理?“找不到steam_api.dll,无法继续执行代码”的修复方法

《CS2》游戏运行时文件丢失、损坏与系统报错处理指南 《CS2》上海 Major 淘汰赛这两天也在如火如荼的进行当中,相信有很多go学长在游戏运行时会遇到各种文件丢失、损坏以及系统报错问题,给玩家带来极大的困扰。今天,我们就来详细探讨一下《C…...

MCPTT 与BTC

MCPTT(Mission Critical Push-to-Talk)和B-TrunC(宽带集群)是两种关键通信标准,它们分别由不同的组织制定和推广。 MCPTT(Mission Critical Push-to-Talk)标准由3GPP(第三代合作伙伴…...

aardio - 汉字笔顺处理 - json转sqlite转png

本代码需要最新版 godking.conn 库,请自行下载! 如果没有安装 odbc for sqlite 驱动,可以使用 godking.conn.driver.sqlite3.install() 安装。 也可以在此下载自行安装:http://www.chengxu.online/show.asp?softid267 1、将js…...

图的遍历之DFS邻接矩阵法

本题要求实现一个函数,对给定的用邻接矩阵存储的无向无权图,以及一个顶点的编号v,打印以v为起点的一个深度优先搜索序列。 当搜索路径不唯一时,总是选取编号较小的邻接点。 本题保证输入的数据(顶点数量、起点的编号等…...

kdenlive 一个视频一左一右拼接(抖音长屏转宽屏)

参考kdenlive 剪裁_Kdenlive中的分层合成-CSDN博客 kdenlive 一个视频一左一右拼接(抖音长屏转宽屏) 按照图片的操作...

深度学习-53-AI应用实战之基于labelImg和labelme的手动标注

文章目录 1 labelImg1.1 简介1.2 安装使用1.3 文件格式1.3.1 pascalVOC格式1.3.2 yolo格式1.4 验证显示2 labelme2.1 简介2.2 安装使用2.3 labelme转换为yolo3 参考附录1 labelImg 1.1 简介 labelImg(label image)是一个开源的图像标注工具,用于创建图像标注数据集。它提供了…...

白鲸优化算法原理,白鲸算法公式,白鲸算法应用(白鲸算法测试效果,白鲸算法优化BP神经网络,白鲸算法路径优化)

‌目录 白鲸算法主要原理 白鲸算法主要公式 白鲸算法应用案例 白鲸算法主要原理 白鲸优化算法(Beluga Whale Optimization Algorithm,BWO)是一种基于种群的元启发式优化算法,灵感来源于白鲸的生活行为。‌该算法通过模拟白鲸的游泳、捕食和鲸落行为来实现模型参数的优化…...

KubeEdge、ThingsBoard 和 CnosDB:智能物联网平台的完美组合

概述 在数字化时代,物联网(IoT)正在改变我们的生活和工作方式。KubeEdge、ThingsBoard 和 CnosDB 是三个领先的开源平台,它们在物联网领域各自发挥着重要的作用,并且可以无缝集成,为用户提供强大的解决方案…...

最简单的线性回归神经网络

数据: # 线性回归 import torch import numpy as np import matplotlib.pyplot as plt# 随机种子,确保每次运行结果一致 torch.manual_seed(42)# 生成训练数据 X torch.randn(100, 3) # 100 个样本,每个样本 3 个特征 true_w torch.tenso…...

[软件工程]九.可依赖系统(Dependable Systems)

9.1什么是系统的可靠性(reliability) 系统的可靠性反映了用户对系统的信任程度。它反映了用户对其能够按照预期运行且正常使用中不会失效的信心程度。 9.2什么是可依赖性(dependablity)的目的 其目的是覆盖系统的可用性&#x…...

浏览器解析页面流程

从输入一个url到页面解析完成的流程 1. 网络进程 1. 获取url 浏览器首先判断输入的url是否有http缓存,如果有则直接从http缓存中读取数据并显示。如果没有,则进行下一步。进行DNS解析,获取域名对应的IP地址。 2.下载html文件 浏览器根据I…...

鸿蒙实现视频播放功能

目录: 1、鸿蒙视频功能介绍2、AVPlayer组件实现视频播放2.1、播放功能的逻辑处理2.2、页面调用渲染2.3、缓存播放信息 3、video组件实现视频播放3.1、鸿蒙官网实现代码3.2、通过xml布局文件代码实现I. 创建项目II. 定义布局文件III. 实现音频和视频播放功能IV. 音频…...

RabbitMQ介绍及安装

文章目录 一. MQ二. RabbitMQ三. RabbitMQ作用四. MQ产品对比五. 安装RabbitMQ1. 安装erlang2. 安装rabbitMQ3. 安装RabbitMQ管理界⾯4. 启动服务5. 访问界面6. 添加管理员用户7. 重新登录 一. MQ MQ( Message queue ), 从字⾯意思上看, 本质是个队列, FIFO 先⼊先出&#xff…...

第五节、电机多段运动【51单片机-TB6600驱动器-步进电机教程】

摘要:本节介绍用控制步进电机三个主要参数角度、速度、方向,实现简单的步进电机多段控制 一、目标功能 输入多个目标角度,设定好步进电机速度,实现步进电机多段转动 二、计算过程 2.1 速度计算 根据第三节内容,定时器…...

docker run 设置启动命令

在使用 docker run 命令时,你可以通过指定启动命令来覆盖 Docker 镜像中的默认入口点或命令。具体来说,你可以通过以下两种方式来设置启动命令: 覆盖 CMD: 你可以通过在 docker run 命令的最后部分提供命令来覆盖镜像的默认 CMD 指…...

嵌入式蓝桥杯学习拓展 LCD翻转显示

通过配置SS和GS两个标志位,实现扫描方向的切换。 将lcd.c的REG_932X_Init函数进行部分修改。 将LCD_WriteReg(R1, 0x0000);修改为LCD_WriteReg(R1,0x0100); 将LCD_WriteReg(R96, 0x2700); 修改为LCD_WriteReg(R96, 0xA700); void REG_932X_Init1(void) {LCD_Wr…...

SQLite 语法

SQLite 语法 SQLite 是一种轻量级的数据库管理系统,它遵循 SQL(结构化查询语言)标准。SQLite 的语法相对简单,易于学习和使用。本文将详细介绍 SQLite 的基本语法,包括数据库的创建、表的创建、数据的插入、查询、更新…...

ZLMediaKit+wvp (ffmpeg+obs)推拉流测试

这里使用了两种方式: ffmpeg命令和 OBS OBS推流在网上找了些基本没有说明白的, 在ZLMediaKit的issues中看到了一个好大哥的提问在此记录一下 使用OBS推流,rtmp,报鉴权失败 推流 1. ffmpeg命令推流 官方说明文档地址: 推流规则 rtsp://192.168.1.4:10554…...

【开源免费】基于SpringBoot+Vue.JS高校学科竞赛平台(JAVA毕业设计)

博主说明:本文项目编号 T 075 ,文末自助获取源码 \color{red}{T075,文末自助获取源码} T075,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

lvgl9 Line(lv_line) 控件使用指南

文章目录 前言主体1. **Line 控件概述**2. **使用场景**3. **控件的样式**4. **设置点**5. **自动大小**6. **y 坐标反转**7. **事件处理**8. **示例代码** 总结 前言 在图形界面设计中,直线绘制是非常常见且重要的功能之一,尤其是在需要进行图形表示、…...

EasyAnimateV5 视频生成大模型原理详解与模型使用

在数字内容创作中,视频扮演的角色日益重要。然而,创作高质量视频通常耗时且昂贵。EasyAnimate 系列旨在利用人工智能技术简化这一过程。EasyAnimateV5 建立在其前代版本的基础之上,不仅在质量上有所提升,还在多模态数据处理和跨语…...

【Copilot 】TAB keybinding not working on JetBrains Client

pycharm ssh 远程到ubuntu24.04 发现tab就是tab,无法输出copilot给出的自动补全到便捷器里。禁用host的copilot插件,重新启动ide就好了。解决办法 参考大神的办法删除主机和客户端插件中的 Copilot插件。 仅在客户端中重新安装 Copilot 插件。 我只是禁用也可以 对比了键盘映…...

leetcode刷题——二叉树(1)

目录 1、递归遍历二叉树 2、迭代法遍历二叉树(通过while循环) 3、二叉树的层序遍历 4、二叉树的层次遍历 II 5、二叉树的右视图 6、二叉树的层平均值 7、N叉树的层序遍历 8、在每个树行中找最大值 9、填充每个节点的下一个右侧节点指针 10、填…...

HTML5教程-表格宽度设置,最大宽度,自动宽度

HTML表格宽度 参考:html table width HTML表格是网页设计中常用的元素之一,可以用来展示数据、创建布局等。表格的宽度是一个重要的参数,可以通过不同的方式来设置表格的宽度,本文将详细介绍HTML表格宽度的不同设置方式和示例代…...

【计算机网络】 —— 数据链路层(壹)

文章目录 前言 一、概述 1. 基本概念 2. 数据链路层的三个主要问题 二、封装成帧 1. 概念 2. 帧头、帧尾的作用 3. 透明传输 4. 提高效率 三、差错检测 1. 概念 2. 奇偶校验 3. 循环冗余校验CRC 1. 步骤 2. 生成多项式 3. 例题 4. 总结 四、可靠传输 1. 基本…...

力扣-图论-4【算法学习day.54】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...

WiFi受限不再愁,电脑无网络快速修复指南

有时在试图连接WiFi时,会发现网络连接受限,或无法正常访问互联网。这种情况不仅影响了工作效率,还可能错过重要的信息。那么,究竟是什么原因导致了电脑WiFi连接受限呢?又该如何解决这一问题呢?小A今天就来教…...

《Java异常处理》

目录 一、异常的概念与分类 二、异常处理机制 三、异常的抛出 四、自定义异常 五、异常处理的最佳实践 在 Java 编程中,异常处理是保障程序健壮性和稳定性的关键环节。有效地处理异常能够避免程序因错误而崩溃,同时提供友好的错误提示信息&#xff…...

清风数学建模学习笔记——Topsis法

数模评价类(2)——Topsis法 概述 Topsis:Technique for Order Preference by Similarity to Ideal Solution 也称优劣解距离法,该方法的基本思想是,通过计算每个备选方案与理想解和负理想解之间的距离,从而评估每个…...

JVM 面试题

Java 虚拟机(JVM)是运行 Java 程序的引擎,它是 Java 语言 “一次编译,处处运行” 的核心技术。JVM 的主要任务是将 Java 字节码(Bytecode)解释成机器码并执行,负责内存管理、线程管理、垃圾回收…...

C语言蓝桥杯2023年省赛真题

文章目录 持续更新中...第一题题目描述输入格式输出格式样例输出提示 2 第二题题目描述 第三题题目描述输入格式输出格式样例输入样例输出 第四题题目描述输入格式输出格式样例输入样例输出提示 第四题题目描述输入格式输出格式样例输入样例输出提示 第五题题目描述输入格式输出…...

Flume基础概念

目录 作用组件构成ClientFlowAgentSourceSinkEvent 和Log4j的区别与定位事务传出流程输入到sourcesource端输入Channel 接收输入到SinkSink输出 作用 Flume可以从各种来源(如日志文件、消息队列、网络数据、文件系统、数据库等)收集数据,并将…...

哈希处理海量数据

接下来我们将以问题的形式来介绍如何用hash处理海量数据。 1.问题1 (位图) 给定100亿个整数,设计算法找到只出现一次的。 1.1问题分析 100亿个整数,一个整数占用4byte,那么就需要约40G左右的空间来存储。显然常见的…...

Go语言基础教程1

Go语言基础教程 目录 变量声明与使用基本数据类型常量切片操作字符串处理指针格式化输出参数 一、变量声明 1.1 基本变量声明 // 标准声明 var variableName variableType// 示例 var age int var name string1.2 变量声明与初始化 // 显式类型声明 var age int 30// 类…...

【每日一道面试题】for与foreach的区别(2024/12/6)

目录 foreach的特点遍历时删除时 foreach 和 for循环遍历数组的差别关于 foreach 和 for 循环的效率问题 首先我们要对foreach有个基本的了解,才能对它们进行区别 foreach的特点 遍历时 用foreach循环去遍历一个数组, 用foreach循环去遍历一个集合&…...

解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾

在数字化时代,开源已成为推动技术创新和知识共享的核心力量,尤其在数据领域,开源技术的涌现不仅促进了行业的快速发展,也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用,时序数据库…...

React第十一节 组件之间通讯之发布订阅模式(自定义发布订阅器)

组件之间通讯常用方案 1、通过props 2、通过context 3、通过发布订阅模式 4、通过Redux 后面会有专栏介绍 什么情况下使用发布订阅模式 a、当我们想要兄弟组件之间通讯,而共同的父组件中又用不到这些数据时候; b、当多个毫无相关的组件之间想要进行数据…...

Vue 2与Vue 3项目中的屏幕缩放适配:使用vue2-scale-box和vue3-scale-box

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…...

Brain.js(九):LSTMTimeStep 实战教程 - 未来短期内的股市指数预测 - 实操要谨慎

系列的前一文RNNTimeStep 实战教程 - 股票价格预测 讲述了如何使用RNN时间序列预测实时的股价, 在这一节中,我们将深入学习如何利用 JavaScript 在浏览器环境下使用 LSTMTimeStep 进行股市指数的短期预测。通过本次实战教程,你将了解到如何用…...