Postman Mock Server自定义实战:从原理到高阶应用,构建智能接口模拟
1. 项目概述为什么我们需要一个自定义的Mock Server如果你做过接口测试尤其是前后端分离开发或者微服务架构下的测试一定遇到过这样的场景前端开发急着要数据渲染页面但后端接口还没开发完或者你需要测试一个支付回调接口但总不能真的去调用第三方支付平台吧这时候一个能“以假乱真”的接口服务器就显得至关重要。它就像一个演技精湛的“替身演员”在后端接口缺席时能模拟出真实接口的响应让测试、联调工作得以继续。Postman这个我们用来调试API的瑞士军刀其实内置了一个非常强大的Mock Server功能。很多人用它来快速生成一些固定响应但今天我要聊的是它的“自定义”玩法。这不仅仅是返回一个静态的JSON字符串而是能根据你的请求参数、请求头甚至请求体动态地、智能地返回你预设的响应。比如你传一个用户ID为123它就返回用户123的信息你传一个错误的Token它就返回401未授权。这大大提升了Mock数据的真实性和测试场景的覆盖率。我最近在一个涉及多服务调用的项目中就深度依赖了Postman Mock Server的自定义能力。前端、移动端、以及其他后端服务都需要依赖我的服务提供数据但我的服务又依赖的下游接口进度不一。通过搭建一个高度自定义的Mock Server我不仅稳住了所有依赖方的开发进度还提前设计并验证了各种异常流如网络超时、数据格式错误、业务逻辑失败等等真实接口就位后集成测试变得异常顺畅。接下来我就把这套实战经验拆开揉碎了分享给你。2. Mock Server核心原理与Postman实现机制要玩转自定义首先得知道它底层是怎么工作的。这样当出现一些“诡异”的行为时你才知道从哪里入手排查。2.1 Mock Server的本质一个智能的请求路由器你可以把Postman的Mock Server想象成一个配置了复杂路由规则的反向代理服务器。它的核心工作流程是这样的接收请求Mock Server有一个唯一的URL例如https://your-uuid.mock.pstmn.io任何发送到这个URL的HTTP请求都会被它接收。解析与匹配Server会解析请求的方法GET/POST等、路径/api/user以及你预先设置的可选匹配条件如特定的查询参数、请求头、请求体。查找响应在与你Mock Server关联的Postman集合Collection中寻找与当前请求最匹配的请求示例Example。这里的“匹配”是有一套优先级规则的。返回响应将找到的请求示例中预存的响应数据包括状态码、响应头、响应体返回给请求方。记录日志在Postman的Mock Server控制台你可以看到所有进来的请求和它最终匹配到了哪个示例这对于调试自定义规则至关重要。关键在于第2步和第3步的“匹配”。Postman的匹配逻辑不仅仅是URL路径相等它允许你设置更精细化的规则这才是“自定义”的基石。2.2 Postman中的关键概念集合、示例与环境集合CollectionMock Server必须绑定到一个Postman集合。这个集合是你的Mock规则和数据的“容器”。你不需要在这个集合里创建完整的请求流而是用它来存放一个个独立的“请求-响应”对。示例Example这是实现自定义的核心单元。在集合中的一个请求下你可以创建多个“示例”。每个示例代表该请求在某种特定条件下的预期响应。比如对于GET /api/user你可以创建三个示例示例1名为“Success - User Found” 响应状态200 返回用户JSON。示例2名为“Error - User Not Found” 响应状态404 返回错误信息。示例3名为“Error - Invalid Token” 响应状态401 返回未授权信息。环境Environment虽然Mock Server不直接依赖环境变量但你在构建示例的响应体时可以充分利用Postman的动态变量如{{$timestamp}},{{$randomInt}}来让返回的数据每次都有变化更贴近真实场景。匹配优先级当请求到达时Mock Server会按照以下顺序查找示例这是很多人在自定义时踩坑的地方首先匹配请求方法和完整路径。然后在所有匹配的示例中优先匹配设置了高级参数匹配规则如特定的查询参数、请求头的示例。如果多个示例都满足高级匹配则选择最先创建的那个。如果没有任何示例满足高级匹配则返回该路径下第一个创建的示例通常作为默认响应。如果连路径都不匹配则返回404。理解这个优先级你就能设计出精准的Mock规则而不是混乱的响应。3. 从零开始构建一个高度自定义的Mock Server理论说再多不如动手做一遍。我们以一个简单的用户管理系统API为例构建一个能处理多种场景的Mock Server。3.1 第一步规划你的Mock接口与场景在动手创建之前先用纸笔或思维导图规划一下。我们的目标是Mock一个用户查询接口GET /api/v1/users/{id}。场景描述请求条件预期响应状态码预期响应体成功查询用户路径参数id为 1-100 的数字200 OK用户详细信息JSON用户不存在路径参数id为 大于100 的数字404 Not Found{“code”: “USER_NOT_FOUND”, “message”: “用户不存在”}请求未授权请求头中缺少Authorization字段或其值不为Bearer valid-token401 Unauthorized{“code”: “INVALID_TOKEN”, “message”: “无效的访问令牌”}服务器内部错误模拟查询参数中包含simulate_errortrue500 Internal Server Error{“code”: “INTERNAL_ERROR”, “message”: “服务器开小差了”}有了这个规划我们创建Mock时就能做到心中有数。3.2 第二步创建Postman集合与示例新建集合在Postman侧边栏点击“New” - “Collection”命名为“User Service Mock”。创建请求在集合下点击“Add a request”方法选择GET请求URL填写/api/v1/users/:id。这里的:id是一个路径变量。创建“成功”示例在刚才创建的请求面板切换到“Examples”标签页点击“Add Example”。命名为“Success - User Found”。在“Request”部分我们可以设置匹配条件。在“Params”标签下添加一个查询参数不对于路径参数匹配是自动的。但我们可以点击“Headers”添加一个头Authorization: Bearer valid-token。这表示只有当请求带有这个头时才可能匹配到这个示例还要看其他示例的条件。在“Response”部分设置状态码为200 Body选择raw/JSON填入{ code: 0, message: success, data: { id: {{$randomInt 1 100}}, name: {{$randomFirstName}} {{$randomLastName}}, email: {{$randomEmail}}, createdAt: {{$timestamp}} } }注意这里使用了Postman的动态变量每次请求返回的数据都会不同id也会在1-100之间随机这很棒。创建“用户不存在”示例再次“Add Example”命名为“Error - User Not Found”。在“Request”的“Params”中关键步骤来了点击“Query Params”旁边的三个点选择“Bulk Edit”然后输入id:999。这实际上是在URL中设置了一个示例值{{id}}为999。但Mock Server匹配时不会要求路径参数完全等于999它只匹配路径模式/api/v1/users/:id。所以为了精确匹配“用户不存在”我们需要用另一种方式在请求URL中直接写死一个不存在的ID比如将URL改为/api/v1/users/999。然后在“Headers”中同样加上Authorization: Bearer valid-token。响应状态码设为404 Body为{ code: USER_NOT_FOUND, message: 用户不存在 }这里有个重要技巧Mock Server对路径的匹配是“精确”的。/api/v1/users/:id是一个模式但/api/v1/users/999是一个具体路径。当你用/api/v1/users/999作为示例的请求URL时只有请求的路径是/api/v1/users/999才会匹配到这个示例。这正好符合我们“ID为999时返回404”的需求。对于“ID为其他大于100的值也返回404”这种范围匹配原生Mock Server支持有限需要结合更高级的技巧后面会讲。创建“未授权”示例新增示例“Error - Unauthorized”。在“Request”的“Headers”中不添加Authorization头或者添加一个错误的值如Authorization: Bearer invalid-token。响应状态码401 Body相应设置。创建“服务器错误”示例新增示例“Error - Internal Server”。在“Request”的“Params”中添加查询参数simulate_error值为true。响应状态码500 Body相应设置。实操心得给示例起一个清晰的名字至关重要比如“Success - [条件]”或“Error - [原因]”。当你在Mock Server日志中看到匹配的示例名时能立刻知道请求触发了哪个场景调试效率倍增。3.3 第三步发布Mock Server并配置在“User Service Mock”集合右侧点击“...”选择“Mock collection”。点击“Create Mock Server”。在配置页面Mock Server Name起个名字如“User-Service-Dev”。Environment可选可以选择一个已有环境但Mock响应本身不依赖环境变量除非你在响应体中用了环境变量。Private如果团队使用建议保持默认的私密状态。Save the mock server URL as an environment variable强烈建议勾选它会自动在你的当前环境中创建一个变量如mock_url这样你在其他请求中就可以用{{mock_url}}/api/v1/users/1来调用Mock非常方便。点击“Create Mock Server”。创建成功后你会获得一个唯一的Mock Server URL如https://abc123.mock.pstmn.io。现在你的自定义Mock Server就已经在云端运行了。任何发送到https://abc123.mock.pstmn.io/api/v1/users/1的请求都会被Postman的服务器处理并按照我们设定的规则返回响应。4. 高级自定义技巧与动态响应实战基础的固定响应和简单条件匹配只能算入门。要让Mock Server真正“活”起来必须掌握下面这些高级技巧。4.1 利用Pre-request Script实现逻辑判断这是实现复杂自定义的“核武器”。Postman允许你在集合、文件夹、请求层级添加“Pre-request Script”请求前脚本。在Mock Server的上下文中这个脚本会在匹配示例之前运行你可以在这里编写JavaScript代码根据请求内容动态地改变请求本身从而引导Mock Server匹配到不同的示例。场景我们想实现“当路径参数id 100时返回404”而不是仅仅针对id999。实现步骤在“User Service Mock”集合的根目录点击“Pre-request Scripts”标签。编写脚本// 获取当前请求的URL路径 const url pm.request.url; // 从路径中提取ID 假设路径格式为 /api/v1/users/123 const pathMatch url.path.match(/\/api\/v1\/users\/(\d)/); if (pathMatch) { const userId parseInt(pathMatch[1], 10); // 如果ID大于100我们修改请求的路径让它指向我们专门为“用户不存在”创建的示例 if (userId 100) { // 将路径改为指向我们预设的“用户不存在”示例的具体路径 // 假设我们为404示例设置的请求URL是 /api/v1/users/999 url.path /api/v1/users/999; // 同时我们可能需要清除或修改一些可能影响匹配的查询参数或头确保精确匹配到404示例 // pm.request.headers.upsert({key: ‘Authorization‘ value: ‘Bearer valid-token‘}); } // 如果ID在1-100之间脚本不做修改Mock Server会按正常流程去匹配“成功”示例 }保存集合。原理当请求https://your-mock-url/api/v1/users/150时脚本先执行发现150100于是把请求的路径在内部改成了/api/v1/users/999。随后Mock Server开始匹配它看到的是一个请求/api/v1/users/999的请求于是精准地匹配到了我们之前创建的“Error - User Not Found”示例返回404响应。注意事项Pre-request Script在Mock Server环境中运行时pm.response对象是不可用的因为此时还没有发生响应。你所有的操作都基于pm.request对象。修改pm.request的属性如url、headers、body一定要小心确保逻辑正确否则可能导致无法匹配到任何示例。4.2 结合动态变量生成更真实的响应数据静态数据容易让人审美疲劳也掩盖了一些数据格式问题。Postman提供了丰富的动态变量{{$randomInt}}随机整数。{{$timestamp}}当前时间戳。{{$randomFirstName}}/{{$randomLastName}}随机姓名。{{$randomEmail}}随机邮箱。{{$randomPassword}}随机密码。{{$guid}}生成UUID。你可以在响应体的JSON中自由组合这些变量。更进一步你甚至可以在Pre-request Script中计算一些值然后通过集合变量或环境变量传递到响应体中。示例在“成功”示例的响应体中我们不仅想要随机数据还希望返回的createdAt时间戳是过去某个时间比如用户注册时间。{ id: {{$randomInt 1 100}}, name: {{$randomFirstName}} {{$randomLastName}}, createdAt: {{$timestamp-100000}}000 // 当前时间戳减去100秒 }但{{$timestamp-100000}}这种运算在动态变量中不支持。这时就需要用脚本在集合的Pre-request Script中// 计算一个过去的时间戳例如7天前 const pastTimestamp Math.floor(Date.now() / 1000) - (7 * 24 * 60 * 60); // 将其设置为集合变量在响应体中引用 pm.collectionVariables.set(“past_ts” pastTimestamp);在“成功”示例的响应体中{ “createdAt”: “{{past_ts}}” }这样每次请求成功示例返回的createdAt都是一个统一的“7天前”的时间戳逻辑上更合理。4.3 模拟网络延迟与异常状态一个真实的接口响应时间有快有慢也可能超时。Mock Server可以模拟这些行为。模拟延迟在创建或编辑Mock Server时配置页面有一个“Simulate fixed delay”选项。你可以设置一个固定的延迟时间如2000毫秒。这对于测试前端加载状态、超时处理逻辑非常有用。模拟异常状态我们已经通过示例创建了401 404 500等状态码。你还可以创建更多如403 Forbidden用户无权限访问该资源。429 Too Many Requests触发限流。502 Bad Gateway网关错误。504 Gateway Timeout网关超时。 为这些状态码创建独立的示例并通过请求参数或脚本来触发它们可以极大地完善你的异常测试用例集。5. 集成工作流与团队协作实践Mock Server不是孤立的玩具它应该融入你和团队的开发测试流水线。5.1 与前端/移动端开发联调分享Mock Server URL将创建好的Mock Server URL直接提供给前端或移动端开发同学。他们只需要将代码中调用后端接口的Base URL替换成这个Mock URL即可。使用环境变量强烈建议在团队共享的环境Postman Team Environment中定义一个变量如base_url。在开发环境将其值设置为Mock Server URL在测试环境将其值设置为测试服务器地址在生产环境设置为生产地址。这样切换环境时所有接口的Base URL自动切换无需修改代码。文档化Mock规则在Postman集合的描述中或者在团队的Confluence/Wiki页面上详细记录每个接口的Mock规则哪些参数会触发什么响应。这能减少沟通成本。5.2 作为自动化测试的依赖在编写API自动化测试脚本如使用Postman Collection Runner或Newman时你可以先针对Mock Server运行测试。优点稳定性Mock Server的响应是确定的不受真实后端服务不稳定、数据变更的影响。独立性可以在本地或CI/CD流水线中随时运行无需部署和启动完整的后端服务。覆盖异常场景可以轻松测试到那些在真实环境中难以触发的异常情况如数据库连接失败、第三方服务超时。做法在测试脚本的Pre-request Script中通过代码判断当前运行环境如果是“Mock环境”则可以对请求做一些适配例如添加特定的Header来触发某个Mock示例。5.3 团队维护与版本管理当接口发生变化时Mock Server也需要同步更新。基于集合版本Postman集合支持创建版本Fork和Merge。当接口有重大变更时可以Fork出一个新版本的集合在新集合上修改Mock示例并发布一个新的Mock Server或更新原有Mock Server指向新集合。这样可以为不同版本的前端提供服务。变更通知如果Mock规则有更新及时通知依赖方。可以在集合描述中注明最后更新时间或者通过团队沟通工具同步。6. 常见问题排查与性能优化实录在实际使用中你肯定会遇到一些坑。下面是我踩过之后总结出来的经验。6.1 为什么我的请求没有匹配到预期的示例这是最常见的问题。请按照以下清单逐项排查检查Mock Server日志在Postman Web控制台或App中进入你的Mock Server详情页查看“Mock Calls”日志。这里会清晰显示每一个进来的请求以及它最终匹配到了哪个示例或未匹配。这是最直接的调试工具。确认请求的URL和方法确保你调用的URL完全正确包括HTTPS并且HTTP方法GET POST与示例中的请求方法一致。一个常见的错误是在浏览器中测试GET接口很方便但测试POST接口就需要借助工具如Postman本身、curl命令。理解匹配优先级回顾第2.2节讲的匹配优先级。如果你的请求同时满足两个示例的条件比如都带有某个HeaderMock Server会选择先创建的那个。检查是否有更早创建的、条件更宽泛的示例“截胡”了。检查Pre-request Script如果你使用了Pre-request Script修改请求请仔细检查脚本逻辑。用console.log()输出关键变量在Postman的控制台View - Show Postman Console查看脚本执行后的请求对象是否如你预期般被修改了。路径参数与查询参数对于/users/:id这样的路径参数在示例的请求URL中如果你写的是/users/1那么它只匹配/users/1。如果你希望匹配所有/users/:id的模式示例的请求URL应该保持为/users/:id然后通过其他条件如Pre-request Script来区分。查询参数的匹配则是精确的键和值都必须匹配。6.2 Mock Server响应慢或超时怎么办Postman的免费Mock Server有调用频率限制每月1000次调用和一定的延迟。如果遇到性能问题检查配额在Postman账户设置中查看Mock Server的调用次数是否已用尽。升级计划对于团队高频使用考虑升级到Postman的付费计划以获得更高的调用限额和更好的性能。本地Mock方案对于性能要求极高或需要离线的场景可以考虑使用本地Mock工具如Postman Interceptor 本地集合在Postman桌面端运行一个集合作为Mock服务器。JSON Server一个基于Node.js的零代码快速创建REST API Mock的工具功能强大可完全本地部署。Mock.js前端常用的数据模拟库更适合在浏览器端拦截Ajax请求。6.3 如何Mock复杂的业务逻辑比如状态流转标准的Mock Server是“无状态”的每次请求相互独立。要模拟有状态的接口如先调用登录接口获取token再用token调用用户信息接口需要一些技巧“状态”存储在客户端这是最简单的方式。你的测试脚本或前端应用在调用Mock登录接口后自己保存返回的mock token。在调用后续接口时手动在请求头中带上这个token。Mock Server端只需要配置对Authorization: Bearer mock-token-123这个头的匹配即可。利用Pre-request Script模拟简单状态虽然Mock Server本身无状态但你可以通过巧妙的Pre-request Script来模拟。例如你可以利用Postman的变量作用域全局、集合、环境来存储一个简单的“状态”。但请注意这些变量在Postman Cloud Mock Server上是隔离且临时的不同请求之间可能无法共享这种方法更适用于本地运行的Postman或Newman。升级到更专业的工具如果业务逻辑极其复杂建议使用可以编写自定义路由和逻辑的Mock框架如WireMockJava、Mockoon桌面应用、Prism基于OpenAPI等。它们允许你编写代码或配置文件来定义复杂的响应逻辑。6.4 安全与隐私考虑Mock数据确保Mock响应中的数据是虚构的、不包含任何真实用户信息或敏感数据。Mock Server URL免费的Postman Mock Server URL是公开可访问的只要别人知道这个URL。虽然URL中有随机字符串但不应视为安全。避免在其中Mock涉及真正安全验证或处理敏感操作的接口。对于内部团队使用Postman团队的私密Mock Server功能更佳。依赖管理明确告诉所有依赖方这是Mock服务数据和行为可能与真实环境有差异。在切换至真实环境时务必进行全面的集成测试。回过头看搭建一个自定义的Mock Server其价值远不止是“模拟一个接口”。它本质上是在定义和驱动团队的接口契约。通过提前设计和Mock前后端可以就接口的路径、方法、参数、响应格式、状态码、异常情况达成一致并立即投入开发和测试实现了真正的并行工作。当后端接口最终交付时双方只需要做一次“契约”对比和集成验证能大幅减少联调阶段的摩擦和返工。所以花时间精通Postman Mock Server的自定义功能绝对是一笔高回报的投资。

相关新闻

MidiEditor:零基础入门专业级MIDI音乐编辑与创作

MidiEditor:零基础入门专业级MIDI音乐编辑与创作

MidiEditor:零基础入门专业级MIDI音乐编辑与创作 【免费下载链接】midieditor Provides an interface to edit, record, and play Midi data 项目地址: https://gitcode.com/gh_mirrors/mi/midieditor 你是否曾想过创作自己的音乐,却苦于复杂的专…

2026/8/3 18:35:44 阅读更多 →
JMeter插件管理器安装失败:从网络到权限的全面排查与解决方案

JMeter插件管理器安装失败:从网络到权限的全面排查与解决方案

1. 问题现象与核心原因剖析 最近在帮团队新同事配置JMeter环境时,又遇到了一个经典的老问题:安装完JMeter Plugins Manager(插件管理器)后,管理器界面下方赫然出现了一行刺眼的红色错误提示——“Failed apply changes…

2026/8/3 18:35:44 阅读更多 →
WPF在工业级ERP与MES系统开发中的实战应用

WPF在工业级ERP与MES系统开发中的实战应用

1. 项目概述:工业级WPF应用开发实战 这个项目涉及两个工业级系统的开发:ERP(企业资源计划)和MES(制造执行系统),采用WPF(Windows Presentation Foundation)作为前端框架&…

2026/8/3 18:35:44 阅读更多 →

最新新闻

AMD Ryzen深度调试:如何通过SDT工具解锁处理器的隐藏性能?

AMD Ryzen深度调试:如何通过SDT工具解锁处理器的隐藏性能?

AMD Ryzen深度调试:如何通过SDT工具解锁处理器的隐藏性能? 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地…

2026/8/3 19:07:59 阅读更多 →
ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)

ASP.NET Web API(三):安全验证之使用摘要认证(digest authentication)

在前一篇文章中,主要讨论了使用HTTP基本认证的方法,因为HTTP基本认证的方式决定了它在安全性方面存在很大的问题,所以接下来看看另一种验证的方式:digest authentication,即摘要认证。 系列文章列表 ASP.NET Web API&a…

2026/8/3 19:07:59 阅读更多 →
RAG 召回率 95% 却答非所问?优先级冲突消解实测:3 种策略与 1 个弃用方案

RAG 召回率 95% 却答非所问?优先级冲突消解实测:3 种策略与 1 个弃用方案

RAG系统文档冲突问题深度解析与解决方案 问题背景与影响分析 昨晚排查生产环境RAG系统时,发现一个值得警惕的现象:用户查询"2026年Taotoken API流量包计费规则"时,系统虽然召回了4份高度相关的文档(召回率高达95%&…

2026/8/3 19:07:59 阅读更多 →
调参3个月才发现:过拟合修复只加L2正则化是错的,偏差-方差诊断才是关键

调参3个月才发现:过拟合修复只加L2正则化是错的,偏差-方差诊断才是关键

从92%训练准确率到25%测试集的思考:一个机器学习菜鸟的觉醒之路 第一次在真实数据集上跑出92%的训练准确率时,那种兴奋感至今难忘。但当我看到测试集仅25%的惨淡结果时,整个人都懵了——这不是教科书里标准的过拟合案例吗?作为一…

2026/8/3 19:07:59 阅读更多 →
Unity透明视频播放全攻略:AVPro Video插件在URP下的实战解析

Unity透明视频播放全攻略:AVPro Video插件在URP下的实战解析

1. 项目概述:为什么Unity中的透明视频播放是个“技术活”? 在Unity项目里,尤其是做UI特效、AR/VR交互或者一些需要将动态视频与3D场景无缝融合的场合,直接播放一个带透明通道的视频(比如一个动态的烟雾、火焰、Logo光效…

2026/8/3 19:07:59 阅读更多 →
React Native 接入微博、微信、QQ 登录功能

React Native 接入微博、微信、QQ 登录功能

在 App 开发中我们经常需要在用户登录模块接入 SNS 登录组件,这样会大大提高用户的注册体验。特别当一个不是刚性需求 App 推广的时候,这样会很大的降低用户体验的成本,没有人愿意忍受输入邮箱、手机号码去注册一个账号的流程。 本文主要分享…

2026/8/3 19:06:59 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →