MQTT的构成、使用场景、工作原理介绍
一、MQTT内容简介
MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布-订阅模式的消息传输协议【适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境】它在物联网应用中广受欢迎,能够实现传感器、执行器和其它设备之间的高效通信。
序号 | MQTT组成内容 | 说明 |
1 | MQTT Broker | 1、负责管理客户端请求内容(建立连接、断开连接、消息订阅、取消、转发等操作)的关键组件,可轻松应对海量连接与百万级消息吞吐量。 2、常用到的MQTT Broker服务端有如下四种: EMQX是一款开源的大规模分布式物联网MQTT服务器,能够以亚毫米级的延迟在一秒钟内处理百万级的MQTT消息。 Mosquitto是一款开源的MQTT服务器,体积小巧,即可运行在低功耗单板计算机上,也可部署在企业级服务器上,采用C语言编写,支持多种平台。 NanoMQ是一款位物联网边缘设计的轻量级MQTT服务器,以纯C语言编写,在独立的Broker环境中有较高性能,优势在于多平台的可移植性。 VerneMQ是采用Erlang/OTP开发的MQTT服务器,使用Apache2.0开源协议,支持将MQTT消息持久化到LevelDB中。 |
2 | MQTT 客户端 | 1、任何运行MQTT客户端库的应用与设备都是MQTT客户端(如:使用MQTT上报数据的各种传感器、使用MQTT进行通讯的程序应用、各种MQTT测试工具) 2、常用到的MQTT客户端有如下五种: MQTTX是开源跨平台的MQTT5.0桌面客户端; MQTTX Web是开源的MQTT5.0浏览器客户端,可直接在线使用; MQTTX CLI是开源、功能强大、易用的MQTT5.0客户端工具; NanoMQ是用于物联网边缘的超轻量MQTT服务器,也包含MQTT测试客户端与MQTT协议性能测试工具bench。 EasyMQTT仅适用于苹果设备的MQTT客户端; |
emqx/README-CN.md at master · emqx/emqx · GitHubhttps://github.com/emqx/emqx/blob/master/README-CN.mdMQTT 协议快速入门 2025:基础知识和实用教程 | EMQ
https://www.emqx.com/zh/blog/the-easiest-guide-to-getting-started-with-mqttMQTT 客户端库 & SDK 大全 | EMQ
https://www.emqx.com/zh/mqtt-client-sdkMQTTX:全功能 MQTT 客户端工具MQTTX 是一款强大的全功能 MQTT 5.0 客户端工具,适用于桌面、命令行和 WebSocket。它使得开发和测试 MQTT 应用更加简单高效。
https://mqttx.app/zh
博客 - 车联网 | EMQEMQ 博客包含了 MQTT 协议、MQTT 客户端使用指南,EMQX 产品技术指南,EMQX 产品最佳实践,以及物联网行业解决方案。 - 车联网https://www.emqx.com/zh/blog/category/internet-of-vehicles
# EMQX Broker服务器的默认端口内容
EMQX Broker服务器Web管理界面的端口是:18083
TCP端口:1883
WebSocket端口:8083
SSL/TLS端口:8883
Secure WebSocket端口:8084#EMQX的默认账号密码是
账号:admin
密码:public
二、MQTT工作原理
MQTT基于【发布-订阅模式】的通信协议,由MQTT客户端使用主题(Topic)进行消息的发布或订阅;通过MQTT Broker集中管理消息路由,并依据预设的服务质量等级(Qos)确保端到端消息传递的可靠性。
序号 | 通配符类型 | 说明 |
1 | + | 单层通配符,用于单个主题层级匹配【使用单层通配符时,单层通配符必须占据整个层级】 |
2 | # | 多层通配符,用于匹配主题中任意层级;表示它的父级和任意数量的子层级【使用多层通配符必须占据整个层级且必须是主题的最后一个字符】 |
3 | $ | 以$SYS/开头的主题为系统主题,主要用于获取MQTT Broker服务器自身的状态、消息统计、客户端上下线事件等数据 |
4 | $share | 共享订阅,是多个订阅者之间实现负载均衡的订阅方式【原理是:在原有主题的基础上添加 $share 前缀即可为一组订阅端启用共享订阅】 |
注意:主题的通配符只能用于订阅,不能用于发布 |
关于共享订阅的负载均衡策略可以在EMQX Broker服务器的配置文件(emqx.conf)修改,查找EMQX Broker服务器的配置文件操作如下,
# Linux查找EMQX Broker的配置文件所在路径命令
find / -name emqx.conf
其中
全局策略可在配置文件的【broker.shared_subscription_strategy】配置;
局部的组策略可在配置文件的【broker.shared_subscription_group.$group_name.strategy】配置
序号 | 共享订阅主题负载均衡策略 | 说明 |
1 | random | 在所有订阅者中随机选择 |
2 | round_robin | 按照订阅顺序选择 |
3 | round_robin_per_group | 在每个共享订阅组中按照订阅顺序进行选择 |
4 | local | 随机在本地订阅中进行选择,如无法找到,则在集群范围内随机选择 |
5 | sticky | 选定订阅者后,始终向其进行发送,直到该订阅者断开连接 |
6 | hash_clientid | 通过对发送者的客户端 ID 进行 Hash 处理来选择订阅者 |
7 | hash_topic | 通过对源主题进行 Hash 处理来选择订阅者 |
# 均衡策略
broker.shared_subscription_strategy = random# 当设备离线,或者消息等级为 QoS1、QoS2,因各种各样原因设备没有回复 ACK 确认,消息会被重新派发至群组内其他的设备。
broker.shared_dispatch_ack_enabled = false
三、MQTT工作流程与服务质量
3.1、MQTT的一般工作流程
《1》客户端使用TCP/IP协议与MQTT Broker服务器建立连接(也可选择TLS/SSL加密来实现安全通信)客户端提供对应的认证信息,且指定会话类型(Clean Session【清除会话】或Persistent Session【持久会话】);
《2》客户端可以向特定的主题发布消息,也可以订阅主题以接收消息。当客户端发布消息时,它是将消息发送给MQTT Broker服务器;而当客户端订阅主题消息时,它会连接到MQTT Broker服务器接收到与订阅主题相关的消息。
《3》MQTT Broker服务器接收客户端发布的消息,然后再将消息转发给订阅了对应主题的客户端。消息的发布与订阅根据设定的服务质量(Qos)等级确保消息可靠传递,并根据会话类型为断开连接的客户端存储消息。
3.2、MQTT的三种服务质量
MQTT的三种服务质量,只要是用在不同网络环境下保证消息传递的可靠性,可根据项目实际情况选择。
序号 | MQTT的质量类型 | 说明 |
1 | Qos 0 At most once | 消息【最多传递一次】如果客户端不可用,则丢失这条消息 (消息即发即弃,不需要等待确认,不需要存储重传,接收方永远不担心收到重复消息) |
2 | Qos 1 At least once | 消息【至少传递一次】可以保证收到消息,但消息可能会重复 (为保证消息可达,Qos1加入了应答与重传机制,发送方只有在收到接收方的puback报文后,才会确认消息投递成功;在消息确认投递成功前,发送方都需要存储该publis报文以便重传) |
3 | Qos 2 Exactly once | 消息【只传送一次】可以保证消息不丢失也不重复 (需要解决消息可达与重复问题,相应地带来了最复杂的交互流程与最高开销,没一次Qos2消息传递,都要求发送方与接收方进行至少两次请求/响应流程) |
注意:Oos等级从低到高,不仅意味着消息传递可靠性提升,也意味着传输复杂度的提升 |
3.3、MQTT的遗嘱消息
遗嘱消息是 MQTT 协议中的一个重要功能,它解决了只有服务端才能知道客户端是否在线的问题,使我们能够为意外离线的客户端优雅地完成善后事宜(即:在 MQTT 中,客户端可以在连接时在服务端中注册一个遗嘱消息,与普通消息类似,我们可以设置遗嘱消息的主题、有效载荷等等。当该客户端意外断开连接,服务端就会向其他订阅了相应主题的客户端发送此遗嘱消息。这些接收者也因此可以及时地采取行动,例如向用户发送通知、切换备用设备等等)。
关于遗嘱消息的介绍与使用方法请查看《遗嘱消息(Will Message)介绍与示例 | MQTT 5.0 特性详解 | EMQ》
四、MQTT协议与其他协议对比
- MQTT vs HTTP
- MQTT vs WebSocket
- MQTT vs CoAP
- MQTT vs AMQP
五、MQTT的安全认证
MQTT在物联网应用中占有重要地位(涉及处理各种实时敏感数据)若缺乏防护,则会被攻击者利用漏洞拦截消息、篡改数据或破坏关键系统,甚至造成严重损害,为确保MQTT的安全性,通常采用如下方式来提升安全性:
- 认证
- 用户名/密码认证
- SCRAM 增强认证
- 其他认证方法
- 授权
- 流量控制
- TLS/SSL
六、MQTT数据存储
MQTT Broker 服务器本身并不具备数据存储功能。因此,必须将其与适当的数据库解决方案集成,才能有效管理和利用这些数据。选择合适的数据库不仅能优化数据存储效率,还能提升物联网应用的扩展性(用于后续数据的分析,体现商业价值)。请参考《MQTT 数据库选型指南》
相关文章:
MQTT的构成、使用场景、工作原理介绍
一、MQTT内容简介 MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布-订阅模式的消息传输协议【适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境】它在物联网应用中广受欢迎,能够实现传感器、执行器和其它设备之间的…...
idea光标变成白色方块的解决方法
在使用 IDEA 进行编程时,你可能会遇到这样一个情况:原本纤细的光标突然变成了白色粗块,这不仅影响视觉体验,还可能在输入时带来困扰。别担心,本文将为你详细剖析该问题出现的原因,并提供有效的解决办法。…...
python manimgl数学动画演示_微积分_线性代数原理_ubuntu安装问题[已解决]
1.背景 最近调研python opencv, cuda加速矩阵/向量运算, 对于矩阵的线性变换, 秩, 转秩, 行列式变化等概概念模糊不清. 大概课本依旧是天书, 于是上B站搜索线性代数, 看到 3Blue1Brown 线性变换本质 视频, 点击观看. 惊为天人 --> 豁然开朗 --> 突然顿悟 --> 开心不已…...
如何为C++实习做准备?
博主介绍:程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章,首发gzh,见文末👇…...
Linux 安装 vscode
使用包管理器安装(推荐) 对于基于 Debian 的系统(如 Ubuntu): sudo apt update sudo apt install software-properties-common apt-transport-https wget -qO- https://packages.microsoft.com/keys/microsoft.asc …...
淘宝商品数据实时抓取 API 开发指南:从接口申请到数据解析实战
一、引言 在当今电商蓬勃发展的时代,淘宝作为国内电商巨头,其平台上汇聚了海量商品信息。对于电商从业者、数据分析爱好者以及众多依赖淘宝商品数据开展业务的企业而言,能够实时获取淘宝商品数据具有极高价值。例如,电商运营者…...
明远智睿SSD2351核心板在物联网领域的应用实践
物联网作为当今科技发展的热门领域,将无数设备连接在一起,实现数据的采集、传输与共享,构建起一个智能化的世界。在这庞大的物联网体系中,核心板扮演着至关重要的角色,明远智睿SSD2351核心板以其独特优势,在…...
这种情况是应为VScode的版本太新了,更新到1.86版本后要求远程连接服务器的内核版本不符合条件
这种情况是应为VScode的版本太新了,更新到1.86版本后要求远程连接服务器的内核版本不符合条件 解决方法 vscode降级,使用1.86以前的版本。亲测这种方法成功解决 首先关闭VSCode自动更新 Windows下载1.85版本链接:https://update.code.visua…...
996引擎-源码学习:PureMVC Lua 中的 Facade 类
996引擎-源码学习:PureMVC Lua 中的 Facade 类 1. 核心概念1.1 外观模式1.2 多例模式2. 关键组件NotificationController:ModelView3. 主要功能4. 初始化流程5. 通信机制6. 生命周期管理1. Facade 初始化流程图2. 发送通知时序图中介者 PlayerBestRingLayerMediatorOpenLayer …...
前端学习10—Ajax
1 AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML 通过 AJAX 可以在浏览器中向服务器发送异步请求,最大优势为:无刷新获取数据 AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方…...
python的多线程和多进程程序编程
CPU密集型使用多进程,IO密集型使用多线程 查看进程ID和线程ID的命令分别是os.getpid()和threading.current_thread() 多进程使用multiprocessing就可以了,通常使用进程池来完成操作,阻塞主进程使用join方法 多线程使用threading模块&#…...
Python代码解释
文章目录 代码解析执行过程等价写法其他类似操作 这段代码使用了 Python 的 map() 函数和 lambda 表达式来对列表中的每个元素进行平方运算。让我详细解释一下: 代码解析 numbers [1, 2, 3, 4] squared list(map(lambda x: x**2, numbers))numbers [1, 2, 3, …...
DNS正反向解析复习,DNS主从服务,转发服务及DNS和nginx联合案例(不断更新)
正向解析 1、配置主机名 [rootlocalhost ~]# dnf install bash-completion -y #一个按tap键补全的软件 [rootlocalhost ~]# hostnamectl hostname dns #改主机名为dns [rootlocalhost ~]# exit ssh root你的IP地址 要重启才会生效2、安装bind [rootdns ~]# dnf install b…...
甜心速达智慧潮流精选超市、即时零售新业态,打造可持续发展商业模式
四川甜心速达科技有限公司、现公司运营高管团队均为美团高级运营师,公司高管团队人均获得“全国工商联人才交流服务中心”创业指导师、市场营销师等、公司致力于优化线上店铺人效比和资源匹配等问题,已经实现了对即时零售行业的资源整合,并融…...
大白话聊MySQL覆盖索引
目录 一、什么是覆盖索引?二、使用了覆盖索引 vs 没使用覆盖索引的区别三、例子说明四、总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支持一下,感谢🤗! …...
C++ inline和define(宏)
文章目录 Inline 函数是什么意思?C中哪些函数不能声明为inline?内联(inline)函数和 #define(宏) Inline 函数是什么意思? inline是内联的意思,可以定义比较小的函数。因为函数频繁调用会占用很多的栈空间,…...
Python中的eval()函数详解
文章目录 Python中的eval()函数详解基本语法基本用法安全性问题安全使用建议实际应用场景与exec()的区别性能考虑总结 Python中的eval()函数详解 eval()是Python的一个内置函数,用于执行字符串形式的Python表达式并返回结果。它是一个强大但需要谨慎使用的函数。 …...
rancher 解决拉取dashboard-shell镜像失败的问题
问题背景 在 Kubernetes 集群中部署 Rancher 后,点击右上角的 "Shell" 按钮时,Rancher 会动态创建一个 dashboard-shell-xxxxx Pod,用于提供 Web 终端功能。然而,由于默认镜像 rancher/shell:v0.1.21 托管在 Docker Hu…...
在Ubuntu服务器上安装Docker(支持Ubuntu 20.04/22.04等版本):
1. 卸载旧版本(如有) 如果系统曾安装过旧版Docker,先清理残留: sudo apt remove docker docker-engine docker.io containerd runc2. 添加Docker官方仓库 安装依赖工具 sudo apt update sudo apt install -y ca-certificates …...
【Linux 进程控制】—— 进程亦生生不息:起于鸿蒙,守若空谷,归于太虚
欢迎来到一整颗红豆的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由一整颗红豆原创✍️,感谢支持❤️!请尊重原创…...
K8s常用基础管理命令(一)
基础管理命令 基础命令kubectl get命令kubectl create命令kubectl apply命令kubectl delete命令kubectl describe命令kubectl explain命令kubectl run命令kubectl cp命令kubectl edit命令kubectl logs命令kubectl exec命令kubectl port-forward命令kubectl patch命令 集群管理命…...
WebChat 一款非常好用的浏览器侧边栏 AI 问答插件
文章目录 使用方法及效果展示划线引用自定义工具自定义模型设置 主要功能1. 划线引用功能2. 自定义划线工具3. 聊天功能4. 历史记录管理5. 界面特性 安装方法方法一:直接安装发布版本(推荐)方法二:从源码构建安装(开发…...
kubernetes入门篇之创建一个nginx容器
上几篇讲了部署master和worker node 及网络插件calico, 现在开始实际运行一个容器。 1. 新建nginx.yaml文件 方式1:直接创建一个pod 和一个 service,一般不直接这样创建,该方式仅适用于测试或学习 apiVersion: v1 kind: Pod …...
回顾 | 2025香港Web3嘉年华:CertiK以创新技术定义安全未来
4月6日至9日,Web3安全巨头CertiK亮相2025香港Web3嘉年华。活动期间,CertiK不仅设立独立展位与广大Web3生态参与者深入互动,更通过高层次的技术交流与前沿研究成果展示,成为本届盛会备受瞩目的焦点。 耶鲁大学计算机科学系教授、C…...
HTML5的笔记
文章目录 1.HTML的概念1.1HTML的基本骨架 2.标签语法2.1标签的关系 3.标签3.1双标签3.1.1标题标签<h1~h6>3.1.2段落标签<p>3.1.3文本格式化标签3.1.4超链接标签<a>3.1.5音频和视频标签audio和<vedio>3.1.6列表标签3.1.7表格标签 3.2单标签3.2.1换行标签…...
LeetCode.2843. 统计对称整数的数目
统计对称整数的数目 题目解题思路思路1.v1Code 思路优化1.v2Code 思路优化1.v3Code复杂度分析 题目 2843. 统计对称整数的数目 给你两个正整数 low 和 high 。 对于一个由 2 * n 位数字组成的整数 x ,如果其前 n 位数字之和与后 n 位数字之和相等,则认…...
Java常用工具算法-6--秘钥托管云服务3--微软zure Key Vault
Azure Key Vault是微软Azure提供的一项服务,旨在帮助用户安全地存储和管理敏感信息,如加密密钥、证书和密码等。它提供了一个集中的位置来保护这些重要资产,并且通过细粒度的访问控制和审计日志来确保安全性。 1、主要功能 (1&a…...
表格开启聚光灯,查看数据不错行-Excel易用宝
面对如此庞大的一个表格,每次找数据就像走迷宫一样,有时看到了数据,眼神不好的小丽小手一抖还会选择到其他数据上,我问她个数据,她经常给我报个错的数据,我说怎么数据总是对不上号。 对于大表格防看错行这…...
解决java使用easyexcel填充模版后,高度不一致问题
自定义工具,可以通过获取上一行行高设置后面所以行的高度 package org.springblade.modules.api.utils;import com.alibaba.excel.write.handler.RowWriteHandler; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import com.alibaba.excel.wr…...
【25软考网工笔记】第二章 数据通信基础(1)信道特性 奈奎斯特 香农定理
一、信道特性 1. 数据通信概念 1)通信系统的基本元素 通信目的: 传递信息。 信源: 产生和发送信息的一端,即信息发送的源头。 信宿: 接收信息的一端,即信息的目的地。 信道: 信源和信宿之间的通信线路,用于传输信息。 信号变换:…...
2024年React最新高频面试题及核心考点解析,涵盖基础、进阶和新特性,助你高效备战
以下是2024年React最新高频面试题及核心考点解析,涵盖基础、进阶和新特性,助你高效备战: 一、基础篇 React虚拟DOM原理及Diff算法优化策略 • 必考点:虚拟DOM树对比(同级比较、Key的作用、组件类型判断) …...
【Code】《代码整洁之道》笔记-Chapter11-系统
第11章 系统 “复杂要人命。它消磨开发者的生命,让产品难以规划、构建和测试。” 11.1 如何建造一个城市 你能自己掌管一切细节吗?大概不行。即便是管理一个既存的城市,也是靠单人能力无法做到的。不过,城市还是在运转&#…...
MySQL数据库编程总结
MySQL数据库编程总结 一、数据库概述 数据库定义 • 数据库是管理数据的软件系统,用于高效存储、管理和检索数据,减少冗余。 • 核心功能:通过SQL语言定义、操作数据,维护完整性和安全性。 常见数据库 • MySQL、Oracle、SQL Ser…...
MySQL学习笔记7【InnoDB】
Innodb 1. 架构 1.1 内存部分 buffer pool 缓冲池是主存中的第一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删查改操作时,先操作缓冲池中的数据,然后以一定频率刷新到磁盘,这样操作明显提升了速度。 …...
HTML应用指南:利用GET请求获取全国汉堡王门店位置信息
在当今快节奏的都市生活中,餐饮品牌的门店布局不仅反映了其市场策略,更折射出消费者对便捷、品质和品牌认同的追求。汉堡王(Burger King)作为全球知名的西式快餐品牌之一,在中国市场同样占据重要地位。自进入中国市场以…...
STM32+EC600E 4G模块 与华为云平台通信
前言 由于在STM32巡回研讨会上淘了一块EC600E4G模块以及刚办完电信卡多了两张副卡,副卡有流量刚好可以用一下,试想着以后画一块ESP32板子搭配这个4G模块做个随身WIFI,目前先用这个模块搭配STM32玩一下云平顺便记录一下。 实验目的 实现STM…...
【Spring】IoC详解:五大类注解、类Bean的存储(上)
1.IoC本质 IoC(Inversion of Control,控制反转) 是Spring框架的灵魂,它颠覆了传统编程中“谁用谁造”的逻辑。简单来说,IoC就是把对象创建和管理的控制权从程序员手中“反转”给一个外部容器,让代码更灵活…...
图片压缩后失真?3款工具还原高清细节
在当今,图片的使用无处不在。为了便于存储和传输,我们常常会对图片进行压缩。然而,不少人发现,压缩后的图片往往变得模糊,失去了原本的清晰度和细节。那么,当遇到这种情况时,我们该如何将模糊的…...
2025中国移动云智算大会|彩讯企业级AI应用产品引关注
2025中国移动以“由云向智,共绘算网新生态”为主题,精心打造了一场智能科技展。中国移动携手生态伙伴带来涵盖算力、工具、模型、应用等覆盖多样化场景的AI应用服务,赋能生产方式、生活方式、社会治理方式的数智化解决方案,充分释…...
在新一代人工智能技术引领下的,相互联系、层层递进的明厨亮灶开源了
明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…...
修图自由!自建IOPaint服务器,手机平板随时随地远程调用在线P图
前言:在这个人人都想当摄影师的时代,一张完美的照片简直比中彩票还难。但别担心,今天我来给大家揭秘一个超级神器——IOPaint!这款免费开源的AI工具不仅能一键移除照片中的杂物和路人,还能智能扩展图片内容,…...
PyTorch实现二维卷积与边缘检测:从原理到实战
本文通过PyTorch实现二维互相关运算、自定义卷积层,并演示如何通过卷积核检测图像边缘。同时,我们将训练一个卷积核参数,使其能够从数据中学习边缘特征。 1. 二维互相关运算的实现 互相关运算(Cross-Correlation)是卷…...
解决Server doesn‘t support Accept-Ranges问题
Cannot download differentially, fallback to full download: Error: Server doesnt support Accept-Ranges (response code 200) 解决方案 修改nginx配置文件支持Accept-Ranges(范围请求) server {...location ^~/ {default_type multipart/byterang…...
处理Excel表不等长时间序列用tsfresh提取时序特征
我原本的时间序列格式是excel表记录的,每一行是一条时间序列,时间序列不等长。 要把excel表数据读取出来之后转换成extract_features需要的格式。 1.读取excel表数据 import pandas as pd import numpy as np from tsfresh import extract_features mda…...
Linux __命令和权限
目录 一、几个指令 bc uname -r 指令 重要的几个热键 二、Shell命令以及运行原理 为什么有外壳 外壳是如何工作的 什么是操作系统,为什么要有操作系统 三、文件类型 1、Linux的文件类型 2、文件类型 四、用户 用户问题和切换问题 增加普通用户 root -&…...
IO流——字符输入输出流:FileReader FileWriter
一、文件字符输入流:FileReader 作用:以内存为基准,可以把文件中的数据以字符的形式读入到内存中去 public class Test5 {public static void main(String[] args) {try (Reader fr new FileReader("E:\\IDEA\\JavaCodeAll\\file-io-t…...
【大模型理论篇】DeepResearcher论文分析-通过在真实环境中的强化学习实现深度研究
1. 背景与问题 大模型(LLMs)配合网络搜索功能已经展现出在深度研究任务中的巨大潜力。然而,目前的方法主要依赖两种途径: 人工设计的提示工程(Prompt Engineering):这种方法依靠手动设计的工作流…...
大数据(7.5)Kafka Edge在5G边缘计算中的革新实践:解锁毫秒级实时处理的无限可能
目录 一、5G时代边缘计算的算力革命1.1 传统架构的延迟困境1.2 5G网络特性与Kafka适配 二、Kafka Edge核心架构设计2.1 分层处理架构2.2 关键技术创新点2.2.1 协议优化2.2.2 轻量化存储引擎 三、5G场景落地实践3.1 智能工厂预测性维护3.2 全息远程医疗会诊 四、性能优化深度实践…...
【基于开源insightface的人脸检测,人脸识别初步测试】
简介 InsightFace是一个基于深度学习的开源人脸识别项目,由蚂蚁金服的深度学习团队开发。该项目提供了人脸检测、人脸特征提取、人脸识别等功能,支持多种操作系统和深度学习框架。本文将详细介绍如何在Ubuntu系统上安装和实战InsightFace项目。 目前github有非常多的人脸识…...
kafka怎么保证消息不被重复消费
在 Kafka 中,要保证消息不被重复消费,可从消费者端和生产者端分别采取不同策略,下面为你详细介绍: 消费者端实现幂等消费 幂等消费是指对同一条消息,无论消费多少次,产生的业务结果都是一样的。 业务层面…...