← 全部文章

中小工厂 PMC 系统怎么选?聊聊本地部署与多机同步这条路

一款面向 0-500 人中小工厂的本地部署 PMC 系统,为什么选择「本地优先 + 局域网同步」的技术路线?本文用实测数据,说明这套方案的能力与边界。

如果你是一家 0-500 人的离散制造厂,生产数据主要在厂区里产生,电脑数量 2-10 台,不希望上云、不希望交年费、断网也想继续干活——本地部署 + 局域网多机同步,是一条非常务实的技术路线。

本文不讨论功能,只讲一件事:这套架构的性能到底怎样、适合多大规模的工厂、不适合什么场景。如果你正在选型,这篇文章可以帮你判断它是否匹配你的工厂。

一、为什么中小工厂更倾向本地部署

我们接触过几十家中小工厂,一个非常明显的共性是:绝大多数生产数据,都在局域网内产生和消费。仓库入库、车间报工、采购下单、销售发货——全部在厂区里完成。把这类数据搬到公网云端,会带来几个实际问题:

所以,「本地部署 + 局域网多机协作」这种看起来「不那么时髦」的架构,在中小工厂场景下反而是务实的选择。

二、多机同步主流方案对比

PMC 系统要实现多台电脑协作,市面上主流有三种做法:

方案 1:中心服务器

MySQL / PostgreSQL 做后端
✓ 支持几百台并发
✗ 需要 IT 运维、成本高
✗ 断网停摆
对中小工厂来说太重

方案 2:全量同步

每次同步拉取整份数据快照
✓ 实现简单
✗ 数据量一涨就崩
✗ 几万条订单有几十 MB
只适合数据量极小的场景

方案 3:增量同步

只同步变化的部分
✓ 网络压力小、实时性好
✗ 实现复杂,需处理离线补偿
中小工厂多机协作的平衡点

轻排 PMClite 采用的是「写方向增量推送 + 读方向增量拉取」的混合方案:

一句话理解:只同步变化的部分,不动没变的部分。

三、三步优化,让多机同步真正"丝滑"

第一步:推送增量(客户端 → 主机)

客户端每次保存时,不是推整张表,而是对比内存里的当前数据和上次的快照,算出变化的几十条,只把这几十条推给主机。

效果:一次保存的同步数据量,从「几十 MB」降到「几十 KB」。

第二步:拉取增量(主机 → 客户端)

主机每次收到变化后追加到变更日志(change_log)。客户端轮询时先问主机「现在到第几号了」,比自己本地进度新的部分才拉取。离线太久(日志被清理)时,自动降级为一次全量。

效果:客户端每次同步的数据量,从「完整快照」降到「变化的那几十条」。

第三步:客户端只更新变化的部分

这是最容易忽略、但收益最大的一步。很多「增量同步」方案只解决了网络传输问题,但客户端收到增量后,还是把整个内存里的数据全部重载一遍——结果一样慢。

轻排 PMClite 的做法是:增量写到本地数据库后,只更新内存里对应那几行,只重建受影响表的索引和缓存,只重绘当前正在看的那一页。

效果:客户端每次同步的内存处理,从 3-5 秒降到 100-300ms,10 倍级收益。

四、实测数据:优化前后差多少

测试环境(普通办公配置):Intel i5-10400(2020 年主流)、16 GB 内存、SATA SSD、千兆交换机局域网。

测试数据集(一个中型电子厂 1-2 年的累积量):

物料 5,000 产品 300 BOM 明细 12 万 销售订单 1 万 工单 4,000 库存日志 10 万

单次同步耗时对比

场景优化前(全量)优化后(增量)
客户端收到 1 条变化3-5 秒50-100 ms
客户端收到 10 条变化3-5 秒80-150 ms
客户端收到 100 条变化3-5 秒150-300 ms

网络传输量对比

场景优化前优化后
主机变更 → 单个客户端约 44 MB< 50 KB
10 台客户端一天总流量数百 MB< 20 MB

多客户端并发体验

客户端数量优化前优化后
2-5 台流畅流畅
5-10 台卡顿无感
10-20 台明显卡顿可用
20-30 台不可用有压力但能跑
5-10 台
舒适协作
20 台
硬撑上限
10 倍
同步提速

五、明确的适用边界

我们不吹「能支撑一切规模」。这是这套架构的真实边界:

✅ 适合你的工厂,如果
  • 员工 0-500 人,离散制造(电子、机械加工、五金、塑胶、食品贴牌)
  • 单一厂区,同一局域网,2-10 台电脑协作
  • 物料 5000-30000 条,年订单 1-5 万单
  • 有千兆交换机(百兆也能跑,但建议客户端 ≤3 台)
  • 对数据安全有要求、不愿上云、断网也要能用
❌ 不适合你的工厂,如果
  • 有跨厂区、跨网络协作需求
  • 50 台以上电脑同时操作
  • 需要手机、平板、外网访问
  • 需要作为全功能 ERP(本系统定位是 PMC 辅助工具)
  • 流程制造(化工、冶炼、制药——工艺路线复杂且连续)

市面上能做到「本地部署 + 局域网多机同步 + 增量同步」的中小工厂 PMC 系统并不多。大多数产品要么是重型云 ERP(贵、断网不可用),要么是轻量单机版(不能多机)。轻排 PMClite 选择的是中间那条路——把「本地优先」做到极致,同时保持多机协作能力。

六、常见疑问

Q1:为什么不做 WebSocket 实时推送?
WebSocket 可以做到毫秒级同步,但引入的复杂度很高(异步编程、断线重连、心跳保活),维护成本大。对中小工厂的 PMC 场景,5 秒轮询已经完全够用——你录入订单后 5 秒内出现在同事屏幕上,业务上没有任何影响。

Q2:为什么用 SQLite 不用 MySQL?
中小工厂的单机协作场景有四个特点:单文件可备份、零运维、加密存储、断网可用。SQLite + SQLCipher 的组合,比 MySQL 更适配这四点。代价是不支持高并发写——所以方案上限是 20 台客户端,超过需要换架构。

Q3:两个人同时改一条数据怎么办?
当前是「最后写入者赢」的语义,和云 ERP 一致:后提交的覆盖先提交的。对 PMC 场景的绝大多数操作(订单状态变更、工单进度上报、库存调整),这个语义已经足够。

Q4:主机坏了怎么办?
主机是单点。主机重启后所有客户端自动恢复(数据在主机磁盘上)。如果需要真正的高可用,得走向分布式架构——但那超出了中小工厂的需求范围。建议定期用系统自带的「备份数据库」功能,把数据库备份到 U 盘或另一块硬盘。

Q5:数据安全怎么保证?
数据库用 SQLCipher 加密,密钥从本机机器码派生(绑定硬件);授权文件用 Ed25519 签名;数据库文件离开本机无法解密。即使有人拷贝走你的数据文件,没有这台电脑的硬件指纹也打不开。

Q6:和云端 ERP 最大的区别是什么?
云端 ERP 是「瘦客户端 + 中心数据库」:客户端什么都不存,一切都靠网络。轻排 PMClite 是「胖客户端 + 本地优先」:客户端有自己的加密数据库,日常操作不依赖网络,只有数据变化才同步。
好处:断网可用、响应本地化、数据自己持有。代价:同步逻辑更复杂、单机存储占用更大。

七、写在最后

做中小工厂的生产管理系统这么多年,最深的一个体会是:没有「最强」的架构,只有「最匹配场景」的架构。

云端 ERP 有它的场景——跨地域、多组织、强管控的中大型企业。本地部署 + 增量同步也有它的场景——单一厂区、2-10 台电脑协作、不愿上云的中小工厂。

轻排 PMClite 就是在这个场景里,把技术做到位的一款产品:

我们不追求「什么都能做」,而是追求「在这个规模区间,做得比其他方案更好、更稳、更匹配」。

不确定这套系统是否适合你的工厂?

把你工厂的数据量、电脑数量、网络环境告诉我们,我们给你一个诚实的答案:适配、勉强、还是不建议。

联系我们做免费适配评估 →

诚实比吹牛更能帮到你。本文所有实测数据均基于普通办公配置(i5-10400 / 16 GB / SATA SSD),测试数据集接近中型电子厂 1-2 年累积量。轻排 PMClite 为独立产品。