可以使用二个系统进行承载,一个页面聚合系统,一个底层数据处理系统,一个批数据处理系统。
首先将商品数据,门店数据等一些基本数据离线t+1导入到在线数据库中(OLAP)--clickhouse等,或者 hadoop文件系统,hbase。
页面聚合系统创建业务表,池子表,池子属性表,池子关联数据表,货品,池子与货品关系 多对多,任务表,批量处理流水表,
整体的业务流程,
根据业务id查询获取主题topic
根据主题topic查询所有的属性规则
根据topic查询池子的数据类型
然后创建池子,启动池子,关闭池子
创建池子--就是简单的保存一直池子基本信息与数据。
启动池子,是一种抽象的方式,属性一般可以是实时的选品池子,也可以是t+1更新的池子。
如果是实时的池子,调用底层数据处理系统,然后根据规则底层将数据导出到文件系统,然后给业务系统发送一个消息,业务系统监听到这个消息之后,落一个批量处理的流水,然后落一个批量文件处理的任务,批量系统进行spi回调业务系统,业务系统一条一条的处理,落池子与货品的关系,这次的操作是首圈。
后续货品的变更,搜索引擎会监听数据库表结构的变更,然后发送消息给业务系统,业务系统落货品和池子的关系。
当批系统全部处理完毕之后,回调业务系统处理完毕,业务系统批量任务状态。
如果是t+1的池子的话
底层系统需要提供创建圈集,修改,激活,导出圈集。
导出圈集可以将数据库中的数据,或者数据仓库的数据 首圈导出到文件系统,然后发消息给业务系统。
这样业务系统就统一处理,落批量处理流水,落任务,任务回调处理。
底层的圈集支持 t+1的日滚,底层系统会导出文件,然后个上一次导出的文件做比对,获取对应的增量导入,增量删除的文件,然后发送消息将文件带给业务方,业务方进行统一的处理。
目前圈集可以支持,圈选商品,门店,商户等各种互联网信息