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

.NET 使用 WMQ 连接Queue 发送 message 实例

1. 首先得下载客户端,没有客户端无法发送message. 安装好之后长这样 我装的是7.5

安装目录如下 tools/dotnet 目录中有演示的demo 

2.  .Net 连接MQ必须引用bin目录中的  amqmdnet.dll 因为他是创建Queuemanager  的核心库,

项目中引用using IBM.WMQ; 才不会报错. 引用amqmdnet 之后如果连接报错 可能缺少amqmdxcs.dll 则需要添加amqmdxcs.dll 在安装目录/bin64 目录可以找到该文件,我因为安装完就客户端,自动会将MQ所需的环境变量配置好,每次build完成后目录会多出来amqmdxcs.dll 文件,所以不需要再次引入

也可以Nuget安装IbmMqClient 包

3. 下面是演示代码:

using System;
using System.Collections;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Threading;
using IBM.WMQ;class MQInteractiveSender
{static readonly string QManager = ConfigurationManager.AppSettings["QManager"];static readonly string HostName = ConfigurationManager.AppSettings["HostName"];static void Main(){Console.Title = "IBM MQ 交互式消息发送器 (带配置默认值)";Console.WriteLine("=== MQ 交互式消息发送程序 ===");Console.WriteLine("注意:直接按Enter将使用配置的默认值\n");while (true){try{// 从配置读取默认值var defaults = new{Channel = ConfigurationManager.AppSettings["DefaultChannel"],Queue = ConfigurationManager.AppSettings["DefaultQueue"],XmlDir = ConfigurationManager.AppSettings["DefaultXmlDir"],XmlFile = ConfigurationManager.AppSettings["DefaultXmlFile"],Count = int.Parse(ConfigurationManager.AppSettings["DefaultMessageCount"]),Interval = int.Parse(ConfigurationManager.AppSettings["DefaultIntervalMs"])};// 用户输入参数(带配置默认值)Console.WriteLine("\n=== 新消息批次 ===");string channel = ReadInput("通道名称", defaults.Channel);string queueName = ReadInput("队列名称", defaults.Queue, true);string xmlDir = ReadInput("XML文件夹", defaults.XmlDir);string xmlFile = ReadInput("XML文件名", defaults.XmlFile);string xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, xmlDir, xmlFile);int messageCount = ReadIntInput("发送次数", defaults.Count);int intervalMs = ReadIntInput("发送间隔(毫秒)", defaults.Interval);// 验证文件if (!File.Exists(xmlPath)){Console.WriteLine($"错误:XML文件不存在 - {xmlPath}");if (!AskYesNo("是否继续?(y/n)", true)) break;continue;}// 发送消息SendMessages(channel, queueName, xmlPath, messageCount, intervalMs);// 询问是否继续if (!AskYesNo("继续发送新消息?(y/n)", true)) break;}catch (Exception ex){Console.WriteLine($"发生错误: {ex.Message}");if (!AskYesNo("是否继续?(y/n)", true)) break;}}Console.WriteLine("\n程序已退出");}static void SendMessages(string channel, string queueName, string xmlPath, int count, int intervalMs){Hashtable mqProps = new Hashtable{[MQC.HOST_NAME_PROPERTY] = HostName,[MQC.CHANNEL_PROPERTY] = channel,[MQC.TRANSPORT_PROPERTY] = MQC.TRANSPORT_MQSERIES_CLIENT};string xmlContent = File.ReadAllText(xmlPath);string compressedXml = RemoveWhitespace(xmlContent);// 添加计时器Stopwatch stopwatch = new Stopwatch();long totalElapsedMs = 0;int successCount = 0;using (var qMgr = new MQQueueManager(QManager, mqProps))using (var queue = qMgr.AccessQueue(queueName, MQC.MQOO_OUTPUT)){for (int i = 0; i < count; i++){try{stopwatch.Restart();var msg = new MQMessage();msg.WriteString(compressedXml.Replace("{{SEQ}}", (i + 1).ToString()));queue.Put(msg, new MQPutMessageOptions());stopwatch.Stop();totalElapsedMs += stopwatch.ElapsedMilliseconds;successCount++;Console.WriteLine($"[{DateTime.Now:HH:mm:ss.fff}] 发送 {i + 1}/{count}" +$" | 本次耗时: {stopwatch.ElapsedMilliseconds}ms" +$" | 平均耗时: {totalElapsedMs / successCount}ms");if (i < count - 1 && intervalMs > 0)Thread.Sleep(intervalMs);}catch (MQException ex){stopwatch.Stop();Console.WriteLine($"[错误] 发送失败: {ex.ReasonCode} - {ex.Message}");}}}// 打印最终统计PrintStatistics(successCount, count, totalElapsedMs, intervalMs);}static void PrintStatistics(int success, int total, long totalMs, int intervalMs){Console.WriteLine("\n======== 发送统计 ========");Console.WriteLine($"成功发送: {success}/{total}");Console.WriteLine($"总耗时: {totalMs / 1000.0:F2}秒");if (success > 0){Console.WriteLine($"平均每条耗时: {totalMs / success}ms");Console.WriteLine($"纯发送速率: {success / (totalMs / 1000.0):F2} 条/秒");if (intervalMs > 0){double theoreticalMinTime = total * intervalMs / 1000.0;Console.WriteLine($"包含间隔的理论速率: {total / theoreticalMinTime:F2} 条/秒");}}Console.WriteLine("========================");}#region 输入辅助方法(带配置默认值支持)static string ReadInput(string prompt, string defaultValue, bool required = false){Console.Write($"{prompt} [默认: {defaultValue}]: ");string input = Console.ReadLine().Trim();if (string.IsNullOrEmpty(input)) return defaultValue;return input;}static int ReadIntInput(string prompt, int defaultValue, int? minValue = null, int? maxValue = null){while (true){Console.Write($"{prompt} [默认: {defaultValue}]: ");string input = Console.ReadLine().Trim();if (string.IsNullOrEmpty(input)) return defaultValue;if (int.TryParse(input, out int result)){if (minValue.HasValue && result < minValue.Value){Console.WriteLine($"不能小于 {minValue.Value}!");continue;}if (maxValue.HasValue && result > maxValue.Value){Console.WriteLine($"不能大于 {maxValue.Value}!");continue;}return result;}Console.WriteLine("请输入有效整数!");}}static bool AskYesNo(string question, bool defaultYes){string defaultText = defaultYes ? "y" : "n";Console.Write($"{question} [默认: {defaultText}]: ");string input = Console.ReadLine().Trim().ToLower();if (string.IsNullOrEmpty(input)) return defaultYes;return input.StartsWith("y");}static string RemoveWhitespace(string xml) =>System.Text.RegularExpressions.Regex.Replace(xml, @">\s+<", "><").Trim();#endregion
}

 4. 配置文件app.Config

<?xml version="1.0" encoding="utf-8" ?>
<configuration><appSettings><!-- MQ 连接默认参数 --><add key="DefaultChannel" value="SYSTEM.DEF.SVRCONN"/><add key="DefaultQueue" value="QUEUE_B"/><add key="DefaultXmlDir" value="Xml"/><add key="DefaultXmlFile" value="message.xml"/><!-- 发送设置默认参数 --><add key="DefaultMessageCount" value="1"/><add key="DefaultIntervalMs" value="100"/><!-- 其他配置 --><add key="QManager" value="QM"/><add key="HostName" value="localhost"/></appSettings>
</configuration>

IbmMqClient 代码片段 需要安装http://www.ikvm.net/ 并配置环境变量

    //配置MQ服务器连接参数MQEnvironment.hostname = HostName;MQEnvironment.port = Port;MQEnvironment.channel = ChannelName;//设置应用名称,方便服务器MQ 查看应用连接//MQEnvironment.properties.put(CommonConstants.USERID, "MQ Test By Java");mQQueueManager = new MQQueueManager(QmName);if (mQQueueSend == null)
{//mQQueueSend = mQQueueManager.accessQueue(queueName, com.ibm.mq.constants.CMQC.MQOO_OUTPUT);mQQueueSend = mQQueueManager.accessQueue(queueName, MQC.MQOO_OUTPUT);
}
MQMessage message = new MQMessage();
message.writeUTF(body);
mQQueueSend.put(message);

5.在WMQ客户端队列管理器QA->,右键创建队列QUEUE_A, 默认端口1414

6. 发送message 到QA channel 的队列的QUEUE_A 

遇到的错误及总结:

1.如果无法创建队列或者queue,请将本地用户添加到qmq组

2. WMQ 装完会默认配置java 环境变量,如果启动遇到failed to create jvm virtual machine 问题一定是原有的JAVA 环境变量 配置和WQM 冲突了或者顺序的原因,我本地是JAVA原有环境变量配置在了MQ_JAVA_LIB_PATH和MQ_JRE_PATH 之后导致,正确的是将JAVA_HOME 变量移动到MQ_开头相关的

3.如果启动代码报错2035 (07F3) (RC2035): MQRC_NOT_AUTHORIZED - IBM

则需要cmd 输入禁用授权规则

RUNMQSC QMALTER QMGR CHLAUTH(DISABLED)

或者在界面

相关文章:

.NET 使用 WMQ 连接Queue 发送 message 实例

1. 首先得下载客户端&#xff0c;没有客户端无法发送message. 安装好之后长这样 我装的是7.5 安装目录如下 tools/dotnet 目录中有演示的demo 2. .Net 连接MQ必须引用bin目录中的 amqmdnet.dll 因为他是创建Queuemanager 的核心库&#xff0c; 项目中引用using IBM.WMQ; 才…...

设计模式之单例模式

视频链接&#xff1a; 设计模式|狂神说 单例模式是什么&#xff1f; 单例模式是确保一个类在整个应用程序中只有一个实例&#xff0c;并提供一个全局方法访问这个实例。 单例模式分为饿汉式和懒汉式。 饿汉式单例 饿汉式顾名思义就是&#xff0c;程序一启动就创建这个单例bea…...

从入门到入土,SQLServer 2022慢查询问题总结

列为,由于公司原因,作者接触了一个SQLServer 2022作为数据存储到项目,可能是上一任的哥们儿离开的时候带有情绪,所以现在项目的主要问题就是,所有功能都实现了,但是就是慢,列表页3s打底,客户很生气,经过几周摸爬滚打,作以下总结,作为自己的成长记录。 一、索引问题…...

大语言模型在端到端智驾中的应用

大语言模型在端到端智驾中的应用 双系统端到端 小鹏&#xff1a;AI天玑系统—神经网络XNet规控大模型XPlanner大语言模型XBrain 商汤绝影&#xff1a;DriveAGI 理想&#xff1a;端到端VLM VLA端到端 Waymo&#xff1a;EMMA OPENEMMA Wayve&#xff1a;LINGO-2...

【深度学习量化交易19】行情数据获取方式比测(1)——基于miniQMT的量化交易回测系统开发实记

我是Mr.看海&#xff0c;我在尝试用信号处理的知识积累和思考方式做量化交易&#xff0c;应用深度学习和AI实现股票自动交易&#xff0c;目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易系统——看海量化交易系统。 经常使用MiniQMT的朋友都知道&#xff0c;xtquant的…...

《网络管理》实践环节03:snmp服务器上对网络设备和服务器进行初步监控

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 应用拓扑图 3.0准备工作 所有Linux服务器上&#xff08;服务器和Agent端&#xff09;安装下列工具 yum -y install net-snmp net-snmp-utils 保证所有的HCL网络设备和服务器相互间能…...

linux操作系统

1.linux进程管理 操作系统都有进程的概念 查看和关闭程序 2.关闭进程 3,查看计算机硬件信息 4.定时任务...

Python基础语法 - 判断语句

Python基础语法 - 判断语句 1. if语句 if 条件:# 条件为True时执行的代码示例 age 18 if age > 18:print("您已成年")2. if-else语句 if 条件:# 条件为True时执行的代码 else:# 条件为False时执行的代码示例 age 16 if age > 18:print("您已成年&q…...

c++柔性数组、友元、类模版

目录 1、柔性数组&#xff1a; 2、友元函数&#xff1a; 3、静态成员 注意事项 面试题&#xff1a;c/c static的作用? C语言&#xff1a; C: 为什么可以创建出 objx 4、对象与对象之间的关系 5、类模版 1、柔性数组&#xff1a; #define _CRT_SECURE_NO_WARNINGS #…...

电子技术基础

目录 一、整体概述 二、知识点梳理及考点分析 &#xff08;一&#xff09;半导体器件 &#xff08;二&#xff09;基本放大电路 &#xff08;三&#xff09;功率放大电路 &#xff08;四&#xff09;集成运算放大器 &#xff08;五&#xff09;直流稳压电源 &#xff0…...

解码大模型时代算力基座的隐形引擎

在千亿参数大模型竞速的今天&#xff0c;算力军备竞赛已进入白热化阶段。当我们聚焦GPU集群的运算峰值时&#xff0c;一个关键命题正在浮出水面&#xff1a;支撑大模型全生命周期的存力基座&#xff0c;正在成为制约AI进化的关键变量。绿算技术将深入解剖大模型训练与推理场景中…...

【NetCore】ControllerBase:ASP.NET Core 中的基石类

ControllerBase:ASP.NET Core 中的基石类 一、什么是 ControllerBase?二、ControllerBase 的主要功能三、ControllerBase 的常用属性四、ControllerBase 的常用方法2. 模型绑定与验证3. 依赖注入五、ControllerBase 与 Controller 的区别六、实际开发中的最佳实践七、总结在 …...

人工智能之数学基础:矩阵分解之LU分解

本文重点 LU分解是线性代数中一种重要的矩阵分解方法,它将一个方阵分解为一个下三角矩阵(L)和一个上三角矩阵(U)的乘积。这种分解方法在数值线性代数中有着广泛的应用,特别是在求解线性方程组、计算矩阵的行列式、求逆矩阵等方面。 LU分解的基本概念 设A是一个nn的方阵…...

C#核心学习(六)面向对象--封装(5)静态成员及静态构造函数和静态类 以及和常量的区别

目录 一、什么是静态的&#xff1f;什么是常量&#xff1f; 1. ​静态&#xff08;Static&#xff09;​ 2. ​常量&#xff08;const&#xff09;​ 二、类中的静态成员有什么用&#xff1f; 1. ​共享数据 2. ​工具方法与全局配置 3. ​单例模式 三、静态类和静态成…...

去中心化稳定币机制解析与产品策略建议

去中心化稳定币机制解析与产品策略建议&#xff08;以Maker/DAI为例&#xff09; 一、核心机制对比&#xff1a;法币抵押型 vs. 加密货币抵押型 法币抵押型&#xff08;如USDT&#xff09; 技术逻辑&#xff1a;1:1美元储备托管于中心化机构&#xff08;如银行&#xff09;&…...

构造超小程序

文章目录 构造超小程序1 编译器-大小优化2 编译器-移除 C 异常3 链接器-移除所有依赖库4 移除所有函数依赖_RTC_InitBase() _RTC_Shutdown()__security_cookie __security_check_cookie()__chkstk() 5 链接器-移除清单文件6 链接器-移除调试信息7 链接器-关闭随机基址8 移除异常…...

JSONP跨域访问漏洞

一、漏洞一:利用回调GetCookie <?php$conn new mysqli(127.0.0.1,root,root,learn) or die("数据库连接不成功"); $conn->set_charset(utf8); $sql "select articleid,author,viewcount,creattime from learn3 where articleid < 5"; $result…...

数据结构优化DP总结

单调栈&#xff1a;Codeforces Round 622 (Div. 2) C2. Skyscrapers (hard version) 简单来讲就是最后需要呈现出一个单峰数组&#xff0c;使得总高度最高。 最开始想到暴力枚举每一个元素都充当最高的“单峰”&#xff0c;但是这里的 n 过大&#xff0c;这样枚举肯定会TLE。 …...

Linux网络相关概念和重要知识(4)(序列化和反序列化、TCP协议、会话和守护进程)

目录 1.序列化和反序列化 &#xff08;1&#xff09;为什么需要序列化 &#xff08;2&#xff09;序列化方案 ①json ②json序列化代码模板 ③json反序列化代码模板 ④将自定义方案和json结合 2.TCP协议&#xff08;传输控制协议&#xff09; &#xff08;1&#xff09…...

[MySQL初阶]MySQL数据库基础

MySQL数据库基础 1. 数据库基础1.1 什么是数据库1.2 主流数据库2. 数据库的基本使用2.1 连接服务器2.2 使用案例2.3 数据逻辑存储3. MySQL架构与分类3.1 MySQL架构3.2 SQL分类4. 存储引擎4.1 存储引擎基本概念4.2 存储引擎基本操作1. 数据库基础 1.1 什么是数据库 存储数据用…...

【mysql 的安装及使用】

MySQL 9.0 一、下载MySQL[MySQL 9.0 下载] [(https://dev.mysql.com/downloads/mysql/)选择自定义,选择合适安装路径二、检查安装情况配置环境变量打开命令行查看版本创建数据库在MySQL中,可以使用create database语句来创建数据库。以下是创建一个名为my_db的数据库的示例:…...

d202542

一、142.环形链表I 142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 用set统计一下 如果再次出现那么就环的第一个return返回就行 public ListNode detectCycle(ListNode head) {Set<ListNode> set new HashSet<>();ListNode cur head;while(cur ! …...

vscode代码片段的设置与使用

在 Visual Studio Code (VS Code) 中&#xff0c;可以通过自定义**代码片段&#xff08;Snippets&#xff09;**快速插入常用代码模板。以下是详细设置步骤&#xff1a; 步骤 1&#xff1a;打开代码片段设置 按下快捷键 Ctrl Shift P&#xff08;Windows/Linux&#xff09;或…...

3D 地图渲染-区域纹理图添加

引入-初始化地图&#xff08;关键代码&#xff09; // 初始化页面引入高德 webapi -- index.html 文件 <script src https://webapi.amap.com/maps?v2.0&key您申请的key值></script>// 添加地图容器 <div idcontainer ></div>// 地图初始化应该…...

spring-security原理与应用系列:HttpSecurity.filters

目录 AnyRequestMatcher WebSecurityConfig HttpSecurity AbstractInterceptUrlConfigurer AbstractAuthenticationProcessingFilter 类图 在前面的文章《spring-security原理与应用系列&#xff1a;securityFilterChainBuilders》中&#xff0c;我们遗留了一个问题&…...

每日总结4.2

蓝桥杯刷题&#xff1a; 1. 方格分割&#xff08;dfs,选中心点&#xff0c;开始上下左右遍历&#xff0c;达到边界时数量加一&#xff09; #include <bits/stdc.h> using namespace std; bool vis[10][10]; int mp[10][10]; int ans0; int dx[4]{1,0,0,-1}; int dy[4]{…...

架构师面试(二十五):分布式存储 Leader 设计

问题 在非常多的分布式存储系统中&#xff0c;如&#xff1a;Zookeeper、Etcd、Kafka等&#xff0c;往往会存在一个 【Leader】 角色&#xff0c;并由该角色负责数据的写入&#xff0c;这样设计最主要的原因是什么呢&#xff1f; A. 唯一负责数据写入的 Leader 角色可以避免并…...

mycat --分片规则--

文章目录 MyCat分片规则详解1. rule1 (基于id的func1算法)2. sharding-by-date (按日期分片)3. rule2 (基于user_id的func1算法)4. sharding-by-intfile (基于枚举值分片)5. auto-sharding-long (长整型范围分片)6. mod-long (取模分片)7. sharding-by-murmur (MurmurHash分片)…...

系统分析师备考启动

以考促学&#xff1a;软件高级系统分析师。 一、考试目的&#xff1a; 1、练习三遍读书法、快速阅读、番茄工作法、第一性原理、思维导图等学习方法和学习工具的使用。 2、掌握知识、编织知识网、顺便拿证。 二、组织形式&#xff1a; 小组统一安排学习内容&#xff0c;每…...

轻量级搜索接口技术解析:快速实现关键词检索的Java/Python实践

Hi&#xff0c;你好&#xff01; 轻量级搜索接口技术解析&#xff1a;快速实现关键词检索的Java/Python实践 接口特性与适用场景 本接口适用于需要快速集成搜索能力的开发场景&#xff0c;支持通过关键词获取结构化搜索结果。典型应用场景包括&#xff1a; 垂直领域信息检索…...

防爆风扇选型指南:根据风量风压匹配应用场景​

在化工、石油、煤矿等存在易燃易爆气体或粉尘的危险环境中&#xff0c;通风设备的安全性能至关重要&#xff0c;防爆风扇成为保障生产环境安全与空气流通的关键装备。正确选型是确保其发挥最佳效能的前提&#xff0c;而根据风量风压匹配应用场景则是选型的核心要点。​ 风量&am…...

Laravel 中使用 JWT 作用户登录,身份认证

什么是JWT&#xff1a; JWT 全名 JSON Web Token&#xff0c;是一种开放标准 (RFC 7519)。 用于在网络应用环境间安全地传输信息作为 JSON 对象。 它是一种轻量级的认证和授权机制&#xff0c;特别适合分布式系统的身份验证。 核心特点 紧凑格式&#xff1a;体积小&#x…...

Git安装

1、 下载Git https://git-scm.com/ 2、 双击【Git-2.44.0-64-bit.exe】安装&#xff1a; 2-1、 选择自定义安装目录&#xff1a;F:\software\Git 2-2、 一直点击next&#xff0c;直到安装成功。 2-3、 在git项目文件夹&#xff0c;右键出现Git GUI Here和Git Bash Here就说明成…...

bit与byte的区别与联系?

李升伟 整理 byte 和 bit 是计算机中常用的数据单位&#xff0c;它们的主要区别和联系如下&#xff1a; 1. 定义 bit&#xff08;比特&#xff09;&#xff1a;计算机中最小的数据单位&#xff0c;表示一个二进制位&#xff0c;值为0或1。 byte&#xff08;字节&#xff09…...

程序化广告行业(51/89):Cookie映射与移动设备ID映射解析

程序化广告行业&#xff08;51/89&#xff09;&#xff1a;Cookie映射与移动设备ID映射解析 在当今数字化营销的浪潮中&#xff0c;程序化广告已经成为企业精准触达目标客户的重要手段。作为一名对程序化广告充满兴趣的学习者&#xff0c;我希望通过这篇博客和大家一起深入探索…...

从吉卜力漫画到艺术创造:GPT-4o多种风格绘图Prompt大全

在3月底&#xff0c;GPT-4o掀起了一阵吉卜力绘图浪潮&#xff0c;大家纷纷输入一张图片&#xff0c;让4o模型进行风格化迁移&#xff0c;其中吉卜力风格的漫画在社交媒体上最为火热。在大家争议4o的训练数据是否侵权和4o背后的技术原理的时候&#xff0c;我们先来玩一玩&#x…...

48. 旋转图像

leetcode Hot 100系列 文章目录 一、核心操作二、外层配合操作三、核心模式代码总结 一、核心操作 先上下翻转再沿着对角线翻转 提示&#xff1a;小白个人理解&#xff0c;如有错误敬请谅解&#xff01; 二、外层配合操作 三、核心模式代码 代码如下&#xff1a; class S…...

【Linux篇】自主Shell命令行解释器

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;Liunx &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路&#xff01; 文章目录 1. 获取用户名的接口2. 等待用户输入接口3. 将上述代码进行面向对象式的封装4. 命令行解析5.…...

leetcode 2873. 有序三元组中的最大值 I

欢迎关注更多精彩 关注我&#xff0c;学习常用算法与数据结构&#xff0c;一题多解&#xff0c;降维打击。 文章目录 题目描述题目剖析&信息挖掘解题思路方法一 暴力枚举法思路注意复杂度代码实现 方法二 公式拆分动态规划思路注意复杂度代码实现 题目描述 [2873] 有序三元…...

深度学习 Deep Learning 第14章 自编码器

深度学习 Deep Learning 第14章 自编码器 内容概要 本章深入探讨了自编码器&#xff08;Autoencoders&#xff09;&#xff0c;这是一种用于特征学习和降维的神经网络架构。自编码器通过编码器和解码器两个部分&#xff0c;将输入数据映射到一个内部表示&#xff08;编码&…...

全国产传感器的可靠性、MTBF计算、极限测试与加速寿命测试

全国产传感器的可靠性是指传感器在规定条件下和规定时间内完成规定功能的能力。它是衡量传感器性能的重要指标之一&#xff0c;直接影响传感器的使用寿命和系统稳定性。武汉利又德的小编来和大家分享一下关于全国产传感器的可靠性以及MTBF计算、极限测试与加速寿命测试的小知识…...

【算法中的数学】裴蜀定理(Bézout’s Identity)总结

裴蜀定理&#xff08;Bzout’s Identity&#xff09;总结 裴蜀定理是数论中的一个重要定理&#xff0c;描述了整数线性组合与最大公约数&#xff08;GCD&#xff09;之间的关系。 1. 裴蜀定理的内容 对于任意两个整数 a a a 和 b b b&#xff0c;设它们的最大公约数为 d …...

unity点击button后不松开通过拖拽显示模型松开后模型实例化

using System.Collections; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;[RequireComponent(typeof(Button))] // 确保脚本挂在Button上 public class DragButtonSpawner : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandle…...

计算机网络复习 吉林大学

1、信息交换的三种方式&#xff1a;电路交换&#xff0c;分组交换&#xff0c;报文交换。 从通信资源的分配角度来看&#xff0c;交换就是按照某种方式动态地分配传输线路的资源。 电路交换&#xff1a;&#xff08;星形结构替代全连接&#xff09; 电话交换机接通电话的方式…...

超级好用的小软件,连接电脑和手机。

将手机变成电脑摄像头的高效工具Iriun Webcam是一款多平台软件&#xff0c;能够将手机摄像头变成电脑的摄像头&#xff0c;通过简单的设置即可实现视频会议、直播、录制等功能。它支持Windows、Mac和Linux系统&#xff0c;同时兼容iOS和Android手机&#xff0c;操作简单&#x…...

【JavaScript】十三、事件监听与事件类型

文章目录 1、事件监听1.1 案例&#xff1a;击关闭顶部广告1.2 案例&#xff1a;随机点名1.3 事件监听的版本 2、事件类型2.1 鼠标事件2.1.1 语法2.1.2 案例&#xff1a;轮播图主动切换 2.2 焦点事件2.2.1 语法2.2.2 案例&#xff1a;模拟小米搜索框 2.3 键盘事件2.3.1 语法2.3.…...

微服务架构技术栈选型避坑指南:10大核心要素深度拆解

微服务架构的技术栈选型直接影响系统的稳定性、扩展性和可维护性。以下从10大核心要素出发&#xff0c;结合主流技术方案对比、兼容性评估、失败案例及优化策略&#xff0c;提供系统性选型指南。 1. 服务框架与通信 关键考量点 扩展性&#xff1a;框架需支持定制化扩展&#x…...

虚拟试衣间微信小程序解决方案

目录 项目名称: 云尚衣橱 核心功能模块: 技术栈选型: 架构设计概览: 详细功能点实现思路: 数据库设计 (MongoDB 示例): 开发步骤建议: 关键注意事项和挑战: 项目名称: 云尚衣橱 核心功能模块: 用户系统 (User System) 我的衣柜 (My Wardrobe) 虚拟试衣间 (Vir…...

C++STL——容器-vector(含部分模拟实现,即地层实现原理)(含迭代器失效问题)

目录 容器——vector 1.构造 模拟实现 2.迭代器 模拟实现&#xff1a; ​编辑 3.容量 模拟实现&#xff1a; 4.元素的访问 模拟实现 5.元素的增删查改 迭代器失效问题&#xff1a; 思考问题 【注】&#xff1a;这里的模拟实现所写的参数以及返回值&#xff0c;都是…...

MoLe-VLA:通过混合层实现的动态跳层视觉-语言-动作模型实现高效机器人操作

25年3月来自南京大学、香港理工、北大和香港科技大学的论文“MoLe-VLA: Dynamic Layer-skipping Vision Language Action Model via Mixture-of-Layers for Efficient Robot Manipulation”。 多模态大语言模型 (MLLM) 在理解复杂语言和视觉数据方面表现出色&#xff0c;使通用…...