【MES学习笔记系列】04 - MES 技术架构设计
目标读者系统架构师、技术负责人、高级开发工程师阅读时间约 30 分钟前置知识微服务基本概念、Spring Boot 基础一、架构总览1.1 分层架构MES 系统采用典型的三层架构兼顾传统的水平分层和微服务时代垂直切割的灵活性1.2 关键设计原则原则说明高内聚低耦合每个微服务只负责一个业务领域DDD 限界上下文无状态设计应用服务无状态状态存于 Redis/数据库方便水平扩展异步解耦非实时业务通过消息队列异步处理独立部署每个微服务可独立构建、部署、扩缩容容错设计熔断Sentinel、降级、重试防止级联故障二、云原生与微服务架构2.1 微服务拆分策略基于 DDD领域驱动设计的限界上下文进行服务拆分微服务限界上下文核心聚合根数据存储mes-order工单管理WorkOrderMySQLmes-execution生产执行ProductionRecordMySQLmes-quality质量管理InspectionTaskMySQLmes-equipment设备管理Machine, MaintenanceMySQLmes-material物料管理MaterialLot, InventoryMySQLmes-schedule排程引擎SchedulePlanMySQLmes-collection数据采集DeviceDataPointInfluxDB/MySQLmes-report报表分析ReportTemplateMySQL 只读副本mes-system系统管理User, Role, PermissionMySQLmes-gatewayAPI 网关——2.2 服务通信通信方式适用场景技术选型同步 REST查询类、事务性操作Feign / OpenFeign异步消息事件通知、数据同步RocketMQ / RabbitMQgRPC高性能、流式调用Spring gRPC StarterWebSocket实时看板推送Spring WebSocket2.3 服务治理三、技术选型3.1 推荐技术栈主力方案Java层级技术版本选择理由后端框架Spring Boot3.x生态完善、国内 MES 主流微服务治理Spring Cloud Alibaba2023.xNacos 注册发现 配置、Sentinel 限流ORMMyBatis Plus3.5灵活 SQL、代码生成消息队列RocketMQ5.x延迟消息、事务消息、阿里系生态缓存Redis7.x高频数据缓存、分布式锁前端框架Vue 3 Element Plus3.4组件丰富、中文生态好关系数据库MySQL / PostgreSQL8.0 / 15主数据存储时序数据库InfluxDB / TimescaleDB2.x / 2.x设备采集的时序数据对象存储MinIO最新附件、eSOP 文件存储容器化Docker K8s24 / 1.28编排、弹性伸缩CI/CDGitLab CI / Jenkins最新自动化构建部署监控Prometheus Grafana最新指标采集与可视化日志ELK (Elasticsearch Logstash Kibana)8.x集中日志管理与检索3.2 备选方案对比组件方案 A推荐方案 B适用场景后端语言Java Spring Boot.NET Core / Python.NET 适合 Windows 生态工厂Python 适合轻量项目消息队列RocketMQRabbitMQ / KafkaRabbitMQ 适合中小规模Kafka 适合大数据量流处理前端Vue 3React Ant DesignReact 适合国际化团队数据库MySQLPostgreSQL需要 JSONB 高级特性选 PG服务治理Spring CloudIstio K8s多语言微服务网格3.3 Java vs .NET Core 对比维度Java / Spring Boot.NET Core微服务生态Spring Cloud 全家桶成熟Steeltoe OcelotOPC UA 库Eclipse MiloOPC UA .NET Standard部署环境Linux 为主Windows 兼容性更好国内招聘岗位多传统制造业 .NET 岗位多选型建议新项目首选与微软生态紧耦合的工厂四、系统集成方案4.1 集成全景图4.2 ERP 集成接口方向数据内容频率生产计划同步ERP → MES计划单号、产品、数量、交期日/即时报工回传MES → ERP良品数、不良品数、工时实时物料消耗回传MES → ERP原材料消耗数量、批次工单完工时入库通知MES → ERP成品完工入库信息实时基础数据同步ERP → MES物料主数据、BOM、客户信息日4.3 WMS 集成接口方向说明送料指令MES → WMS工单开工时生成送料单发料确认WMS → MESWMS 完成拣货发料后通知 MES完工入库MES → WMS成品完工请求入库库存查询MES → WMS实时获取物料可用量4.4 SCADA/PLC 集成协议适用场景MES 角色OPC UA主流设备、CNC 机床、PLC客户端订阅数据 调用方法Modbus TCP老旧设备、仪表客户端读保持寄存器MQTT边缘传感器、IoT 网关Broker接收数据MTConnectCNC 机床客户端接收标准化数据五、接口设计5.1 RESTful API 规范URL 设计GET /api/v1/work-orders # 工单列表 GET /api/v1/work-orders/{id} # 工单详情 POST /api/v1/work-orders # 创建工单 PUT /api/v1/work-orders/{id} # 更新工单 POST /api/v1/work-orders/{id}/start # 开工 POST /api/v1/work-orders/{id}/complete # 完工统一响应格式json{ code: 200, message: success, data: { orderId: WO-20260729-001, productName: 产品A, status: IN_PRODUCTION }, timestamp: 1753700000 }5.2 OPC UA 数据模型Root └── Objects └── Factory └── Line1 └── Machine-001 ├── Status (Variable: Running) ├── Temperature (Variable: 85.6) ├── Speed (Variable: 1200) ├── Alarm (Variable: false) └── Methods ├── Start() ├── Stop() └── SetSpeed(int rpm)5.3 MQTT Topic 设计Topic说明QoSmes/{factory}/{line}/device/status设备状态上报1mes/{factory}/{line}/device/data工艺参数上报1mes/{factory}/{line}/device/alarm设备报警2mes/{factory}/{line}/cmd/recipe配方下发指令2mes/{factory}/{line}/cmd/adjust参数调整指令2六、安全架构6.1 安全分层层面措施技术传输安全TLS 1.3 加密Nginx SSL 终结认证JWT OAuth 2.0Spring Security授权RBAC 角色权限 数据权限自研权限中间件审计操作日志全量记录AOP ELK数据安全敏感字段加密存储AES-256 / SM4API 安全请求签名 防重放时间戳 Nonce6.2 权限模型用户 (User) │ ├── 角色 (Role): 生产经理 / 操作员 / 质检员 / 设备工程师 │ │ │ └── 功能权限: 工单管理 / 质量检验 / 设备管理 ... │ └── 数据权限: 只能看到所属产线 / 车间的数据七、高可用与灾备设计能力方案应用高可用多副本 K8s 自动重启 HPA 自动扩缩数据库高可用MySQL 主从复制 读写分离消息队列高可用RocketMQ Dledger 主备缓存高可用Redis 哨兵 / Cluster异地灾备数据库异地同步、每日备份灰度发布K8s Ingress 按权重引流

相关新闻

Unity游戏马赛克消除终极指南:UniversalUnityDemosaics完全使用手册

Unity游戏马赛克消除终极指南:UniversalUnityDemosaics完全使用手册

Unity游戏马赛克消除终极指南:UniversalUnityDemosaics完全使用手册 【免费下载链接】UniversalUnityDemosaics A collection of universal demosaic BepInEx plugins for games made in Unity3D engine 项目地址: https://gitcode.com/gh_mirrors/un/UniversalUn…

2026/8/8 8:10:19 阅读更多 →
图标一致性崩塌危机,如何用Prompt Engineering+微调工作流重建品牌视觉资产库,7步落地手册

图标一致性崩塌危机,如何用Prompt Engineering+微调工作流重建品牌视觉资产库,7步落地手册

更多请点击: https://codechina.net 第一章:图标一致性崩塌的根源诊断与影响评估 图标一致性崩塌并非视觉层面的偶然失序,而是设计系统、开发流程与协作机制多重断裂的外在表征。当同一应用中出现 SVG 路径不统一、语义命名冲突、尺寸单位混…

2026/8/9 0:15:44 阅读更多 →
AI重塑网络安全攻防:从智能博弈到全域防御体系构建

AI重塑网络安全攻防:从智能博弈到全域防御体系构建

1. 从“猫鼠游戏”到“智能博弈”:AI如何重塑网络安全攻防格局最近几年,网络安全圈子里一个老生常谈的话题,正在被AI技术彻底改写。过去,我们总把攻防对抗比作一场“猫鼠游戏”——攻击者(猫)不断寻找新的漏…

2026/8/13 3:45:38 阅读更多 →

最新新闻

终极Unity资源编辑器实战指南:从解包到Mod制作一条龙玩转UABEAvalonia

终极Unity资源编辑器实战指南:从解包到Mod制作一条龙玩转UABEAvalonia

终极Unity资源编辑器实战指南:从解包到Mod制作一条龙玩转UABEAvalonia 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 周五晚上,我从网盘里翻出一款老游戏想做个汉化Mod&#x…

2026/8/17 1:40:43 阅读更多 →
华为外包测试岗位体验:技术成长困境与职业路径反思

华为外包测试岗位体验:技术成长困境与职业路径反思

1. 从满怀期待到转身离开:我的华为外包入职初体验去年年底,我接到了一个来自某大型人力资源公司的电话,对方告知我,有一个华为某核心产品线的软件测试外包岗位机会,问我是否感兴趣。坦白说,当时的心情是复杂…

2026/8/17 1:40:43 阅读更多 →
用Scratch实现第一人称3D跑酷:透视投影与相机控制实战

用Scratch实现第一人称3D跑酷:透视投影与相机控制实战

如果你以为 Scratch 只是个拖拖积木、做做动画的“儿童编程玩具”,那今天这篇文章可能会颠覆你的认知。当“Scratch”和“3D跑酷”、“第一人称相机”这些词组合在一起时,它就不再是简单的平面游戏,而是一个充满挑战和创意的技术实践项目。很…

2026/8/17 1:40:43 阅读更多 →
无需微调的多智能体系统:零样本临床文本症状检测新范式

无需微调的多智能体系统:零样本临床文本症状检测新范式

1. 项目概述:当多智能体遇上临床文本,无需微调的症候检测新范式最近在折腾一个挺有意思的项目,核心就一句话:让多个AI智能体协作,直接从临床文本里自动识别症状,而且全程不需要对预训练模型做任何微调。这听…

2026/8/17 1:40:43 阅读更多 →
Mac向Kindle传书全攻略:从拖拽到命令行的四种高效方案

Mac向Kindle传书全攻略:从拖拽到命令行的四种高效方案

1. 项目概述:为什么Mac向Kindle传书值得深究?作为一个深度依赖Kindle阅读和Mac办公的“双持党”,我几乎每天都会遇到一个看似简单却时常让人皱眉的问题:如何把Mac上的电子书或文档顺畅地导入Kindle?这听起来像是一个“…

2026/8/17 1:40:43 阅读更多 →
Unity资源编辑器快速上手:跨平台Asset Bundle修改一次搞定

Unity资源编辑器快速上手:跨平台Asset Bundle修改一次搞定

Unity资源编辑器快速上手:跨平台Asset Bundle修改一次搞定 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 深夜十二点,我盯着那个打不开的 .bundle 文件 "文件已损坏&quo…

2026/8/17 1:39:43 阅读更多 →

日新闻

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必修课? 如果你用LabVIEW做过稍微复杂点的项目,尤其是涉及界面响应、多任务并行或者硬件IO等待的场景,大概率遇到过这样的窘境:前面板点个按钮,整个程序就“卡死…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/17 0:00:08 阅读更多 →
飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:00:08 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/16 6:00:24 阅读更多 →
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/16 6:00:27 阅读更多 →