码上优选微服务项目如何包装简历?
2026/6/22
项目名称:码上优选
核心技术:JDK17、SpringBoot3.5、Spring Cloud、OpenFeign、MySQL、Redis、ShardingSphere-JDBC、Seata、Sentinel、Nacos、Elasticsearch、Micrometer、Prometheus、AlertManager、Grafana、SkyWalking/ELK、WebSocket/STOMP、Caffeine、HikariCP、Docker/Kubernetes 等。
项目描述:码上优先商城以稳定交付与用户体验为目标,提供商品、订单、支付、营销、消息、推荐等完整能力。系统采用微服务架构,结合分库分表、读写分离与缓存治理,保障在 500万用户 的场景下高并发与高可用;通过全链路可观测与灰度回滚机制,降低变更风险与平均恢复时长(MTTR)。
我的职责:
- 主导下单全链路事务与一致性:Seata AT 集成与 @GlobalTransactional(OrderService),覆盖库存扣减、订单创建、优惠券核销、购物车清理。
- 订单搜索与索引:事件驱动同步(OrderCreatedEvent/OrderCreatedListener),查询与聚合(OrderEsRepository),支持订单状态、关键字与 Nested 明细检索。
- 数据序列化治理:订单模块 Long→String 全局序列化(WebConfig),保障前端数值精度。
- 首页缓存体系落地:Caffeine+本地+Redis 三层缓存(IndexProductController、MobileIndexController、MobileCacheService),刷新任务(RefreshIndexDataJob)。
- 推荐计算与缓存:用户/物品相似度与权重融合(RecommendService、RecommendMahoutHelper),Redis 缓存键与 TTL 策略,分库分表查询与写入。
- 消息推送通道:WebSocket/STOMP 端点与订阅、握手鉴权与 REST 兜底(消息模块 WebConfig),通知落库分库分表(common_notify)。
- 登录态与鉴权链路:网关 AuthFilter、服务端 JwtTokenFilter/FeignAuthInterceptor、AuthApiInterceptor、@NoLogin 免登录路径、GlobalExceptionHandler 异常透传。
- 分库分表与扩容:订单/推荐/营销域分片设计与路由(ShardingSphere-JDBC,INLINE),绑定表与 SQL 路由审计。
项目亮点:
- 订单事务一致性:在 ShardingSphere 环境中集成 Seata,全局事务保障下单流程(库存扣减、创建订单、核销优惠券、购物车清理),避免 CGLIB 代理冲突,采用 JDK 代理 稳定运行。
- 订单搜索与索引:订单创建后通过事件监听将 OrderEntity 映射为 ES 文档(含 Nested 的 orderItemList),支持关键字与明细商品名查询,提升售后与用户查询效率。
- Long→String 序列化:订单服务通过全局 Jackson 配置将 Long/long 序列化为字符串,避免前端精度丢失,减少多端对齐成本。
- 推荐缓存策略:融合浏览与收藏的权重推荐,采用 Redis 缓存键 recommendProduct:user:{userId},并对相似度与共现数量做内存约束,支持定时流式计算填充。
- 收藏/浏览分库分表:推荐服务启用 ShardingSphere,收藏 8库×16表、浏览 8库×64表,均按用户分片,满足高并发写入与查询。
- WebSocket 消息推送:消息服务提供 /ws 端点,支持广播 /topic/notify 与定向 /user/queue/notify,并通过网关路由 /api/message/** 暴露给前端。
- 基于时间轮的 WorkID 动态分配:结合雪花算法的工作节点ID管理,使用时间轮避免冲突与漂移,支持节点热迁移与容错,保障唯一ID生成稳定性。
- 通用用户信息 MyBatis 拦截器:通过拦截器与 FillUserUtil 自动填充审计字段(create_user_id/create_user_name/update_*),统一在 Mapper 层使用占位符(如 CURRENT_USER_ID),降低重复代码并保证审计一致性。
- 缓存与热点治理:本地 Caffeine + Redis 集群,热点 Key 防护与旁路缓存;分层布隆与分布式锁方案降低穿透与击穿风险。
- 搜索与读写分离:商品检索走 ES 与缓存,数据库读多写少,采用主从复制与读写分离提升查询性能。
- 全链路登录态透传:网关 AuthFilter 校验并透传 Authorization;微服务 AuthApiInterceptor 解析令牌填充 SecurityContext/FillUserUtil;FeignAuthInterceptor 转发令牌与内部调用标识,保证跨服务身份一致与审计字段自动填充。
- SkyWalking TraceId 日志链路:Logback MDC/GRPC Appender 打通跨服务 TraceId,网关与业务日志统一链路标识,提升故障定位与排查效率。
- 动态免登录与安全放行:@NoLogin 注解 + SpringSecurityConfig 动态扫描注册免登录 URL;JwtTokenFilter 配合 NoLoginMap 精准拦截/放行,兼顾开放接口安全与用户体验。
- 统一响应与异常透传:GlobalExceptionHandler + ApiResult 统一出参;内部调用通过 INNER-REQUEST 头保持原始 HTTP 状态码与消息透传,提升跨服务错误可读性与定位效率。
- RocketMQ 异步集成:在推荐/任务模块集成 RocketMQ NameServer,支持异步解耦与批量任务触发,平滑削峰填谷、减少耦合。
常见问题
部署架构与节点规模?
项目规模与部署规模?
如何保证下单事务的一致性?
搜索如何加速?
分库分表策略如何落地?
推荐如何实现与降本?
消息如何推送?
缓存一致性与失效策略如何保证?
击穿/穿透/雪崩与热点治理怎么做?
QPS 峰值如何防护?
如何获取项目源代码、完整教程和问题答案?
