背景
EAP平台由多个子系统组成,比如MWMS、WMS、MES、OMS、EAP。上游对接ERP,下游处理工厂生产、仓储、销售、采购业务。
需要从ERP平台同步单据、基础数据到EAP平台。单据同步采用ERP触发事件方式同步,基础数据采用轮询同步。
问题在于轮询的实现,要求如下:
- 提高轮询频率,保证实时性
- 减少全量同步,避免子系统频繁rescache reload
假设采用5分钟同步全部数据,导致实时性不高,提高频率会导致子系统频繁重载缓存。
解决方法
- 采用滑动时间窗口同步,第一次窗口1970-now,第二次窗口now-now+1。比如第一次同步1970到2024-01-01的数据,全量更新,第二次就是2024-01-01到2024-01-01的数据
- 当增量数据为空时,不通知子系统重载缓存,降低系统压力