在餐饮、超市与零售实体门店的日常运营中,宽带光纤被挖断、商场 Wi-Fi 突发拥堵等网络不可用故障时有发生。如果收银系统完全依赖云端接口,断网即意味着停业,将带来灾难性的客户流失与客诉纠纷。纳海川商业收银系统从设计之初便将“离线容灾”列为第一优先级工程目标。
一、收银端轻量本地安全沙箱
为了脱离云端依然能独立运转,纳海川收银前台内置了基于本地 SQLite 的全加密存储沙箱:
- 核心基础数据预加载:商品价目表、会员离线档案、促销阶梯算法在开店时从云端全量同步并本地常驻,断网期间仍可完成扫码选品、会员积分计算与整单折扣。
- 离线交易单据加密持久化:断网状态下的挂账、现金收银、储值卡消费自动生成本地防伪数字凭证,使用 AES-256 加密持久化存储在本地安全存储区。
二、网络恢复后的幂等回传状态机
当网络信号恢复时,如何保障数百笔离线订单正确回传、既不丢失又不重复记账?纳海川设计了双重防御机制:
-- 订单唯一幂等约束
CREATE TABLE `fa_pos_orders` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`device_sn` varchar(64) NOT NULL COMMENT '收银机终端唯一硬件码',
`client_order_sn` varchar(64) NOT NULL COMMENT '终端本地雪花ID流水号',
`sync_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0-未同步 1-已同步 2-对账异常',
PRIMARY KEY (`id`),
UNIQUE KEY `uniq_device_order` (`device_sn`, `client_order_sn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
服务端通过终端硬件码加本地流水号的复合唯一索引杜绝重复入库;即使网络抖动触发多次重试,业务端仍能自动保持幂等。
三、后厨与外设局域网双向容灾通信
除了收银台本身,前台点餐到后厨打印的链路同样具备局域网自组网容灾能力:即便外网中断,基于局域网广播协议与双网口热敏打印机的底层直连机制仍可秒级完成菜品分单打印,避免漏做漏上。
实战运行指标:经受全国 300+ 实体商业门店连续 720 天生产环境严苛考验,在多次突发断网演练中实现 100% 离线结账无阻断,网络恢复后离线丢单率为 0%。