• 如何实现选品平台


    可以使用二个系统进行承载,一个页面聚合系统,一个底层数据处理系统,一个批数据处理系统。

    首先将商品数据,门店数据等一些基本数据离线t+1导入到在线数据库中(OLAP)--clickhouse等,或者 hadoop文件系统,hbase。

    页面聚合系统创建业务表,池子表,池子属性表,池子关联数据表,货品,池子与货品关系 多对多,任务表,批量处理流水表,

    整体的业务流程,

    根据业务id查询获取主题topic

    根据主题topic查询所有的属性规则

    根据topic查询池子的数据类型

    然后创建池子,启动池子,关闭池子

    创建池子--就是简单的保存一直池子基本信息与数据。

    启动池子,是一种抽象的方式,属性一般可以是实时的选品池子,也可以是t+1更新的池子。

    如果是实时的池子,调用底层数据处理系统,然后根据规则底层将数据导出到文件系统,然后给业务系统发送一个消息,业务系统监听到这个消息之后,落一个批量处理的流水,然后落一个批量文件处理的任务,批量系统进行spi回调业务系统,业务系统一条一条的处理,落池子与货品的关系,这次的操作是首圈。

    后续货品的变更,搜索引擎会监听数据库表结构的变更,然后发送消息给业务系统,业务系统落货品和池子的关系。

    当批系统全部处理完毕之后,回调业务系统处理完毕,业务系统批量任务状态。

    如果是t+1的池子的话

    底层系统需要提供创建圈集,修改,激活,导出圈集。

    导出圈集可以将数据库中的数据,或者数据仓库的数据 首圈导出到文件系统,然后发消息给业务系统。

    这样业务系统就统一处理,落批量处理流水,落任务,任务回调处理。

    底层的圈集支持 t+1的日滚,底层系统会导出文件,然后个上一次导出的文件做比对,获取对应的增量导入,增量删除的文件,然后发送消息将文件带给业务方,业务方进行统一的处理。

    目前圈集可以支持,圈选商品,门店,商户等各种互联网信息

  • 相关阅读:
    使用Docker部署Consul集群并由Ocelot调用
    红帽Linux的安装和部署
    JDK 17 之 JVM调优 史诗级 教程
    react脚手架创建项目,配置别名(alias)
    网络聊天室(三)
    【佳学基因检测】Node.js http模组中req参数的使用
    PTE-写作 学习(一)
    大数据ClickHouse进阶(十二):ClickHouse的explain查询执行计划
    【设计模式】C++单例模式详解
    图解域名解析成IP的全过程(你浏览器摁下一个网址后发生了啥?)
  • 原文地址:https://blog.csdn.net/u011955252/article/details/127814443