立项原因与产品问题:跨境一件代发(Drop Shipping)场景下,卖家需要统一管理海量 SPU/SKU 商品、多币种价格与汇率、以及物流报价,以降低运营成本、提升选品与报价效率。本项目旨在解决多币种价格国际化更新慢、汇率维护分散、物流报价体验差、以及高并发下接口易被滥用等问题。
行业场景与业务背景:面向跨境电商/独立站卖家,提供商品目录(SPU/SKU)、分类、属性、多币种价格与汇率、首页与广告位、以及物流费用查询等能力;与 Nacos 配置中心、XXL-Job 调度中心等企业基础设施集成,支撑多环境部署与定时任务(如汇率更新、价格国际化、统计更新)。业务上涉及百万级 SKU 的价格与统计更新、多国物流报价与 Cookie 持久化等典型跨境电商业态。
项目主要功能模块与描述如下:
(1)商品与 SPU/SKU 模块:提供 SPU 列表分页查询,支持关键词搜索、热门/新品/促销筛选、价格区间、分类筛选及多种排序;提供 SPU/SKU 详情、默认 SKU、商品属性与属性值、相册等查询接口,支撑前台商品展示与选品。
(2)多币种与汇率模块:提供货币汇率基础设施(USD/CNY 双向汇率),支持定时拉取外部汇率 API 并落库;商品价格支持多币种国际化,通过定时任务按最新汇率批量更新百万级 SKU 价格,并支持独立事务与虚拟线程并行以保障性能与稳定性。
(3)物流报价模块:提供物流费用查询接口,支持收件人邮编、收件国家、发件国家等参数;实现 Cookie 自动保存上述信息并持久化 3 天,便于用户下次访问自动填充,提升询价体验。
(4)运营与内容模块:首页轮播广告(HomeAdvertise)、商品分类树(ProductCategory)、数据字典(Dictionary)等查询接口,支撑前台首页与运营配置。
(5)限流与安全:基于 IP+URL 与 Cookie Card 的双重限流机制,对已识别用户(带 Card)采用更严格限流,未识别用户先经 IP+URL 限流再自动下发 Card,兼顾防刷与体验。
(6)定时任务:基于 XXL-Job 的分布式任务调度,包括汇率更新、商品价格国际化批量更新、SPU 统计更新等,替代原有单机 @Scheduled,支持任务依赖与管控。
本人负责的主要任务包括:商品与 SPU/SKU 领域模型与查询服务设计、多币种价格国际化与汇率基础设施的架构与实现、物流报价接口与 Cookie 持久化方案、限流策略设计与实现、以及部分定时任务从 Spring @Scheduled 迁移到 XXL-Job。
技术栈与架构:采用 Java 21、Spring Boot 3.3、Spring Cloud 与 Nacos 配置/注册;持久层使用 MyBatis-Plus + PostgreSQL,多数据源与 Druid 连接池;缓存与分布式锁使用 Redisson;定时任务使用 XXL-Job;消息与流式处理预留 Spring Cloud Stream Kafka。项目按 DDD 思路划分 product 域与 infrastructure(common、currency-exchange-rate、logistics),接口层提供 REST API 与 SpringDoc OpenAPI 文档。
实现亮点与难点:(1)百万级 SKU 价格更新:通过虚拟线程(Virtual Threads)并行批处理、增大批次大小、每批独立事务,将整体更新耗时显著缩短;(2)汇率模块从业务模块拆分为独立基础设施,可被多服务复用,并统一表结构与精度(如 6 位小数);(3)双重限流(IP+URL+Card)在防刷与用户体验间取得平衡,Cookie Card 自动生成与刷新;(4)物流报价 Cookie 自动保存与 3 天有效期设计,兼顾便捷与安全(HttpOnly 等)。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论