众里寻他千百度。蓦然回首,那人却在,灯火阑珊处。
会员平台之二[任务调度]
背景 项目中一般需要定时任务或者实时同步服务的部署 设计 要求 支持定时任务 支持一次性任务 支持实时任务 任务支持中断(常见批量任务处理,可能出现异常) 实现 框架 部署服务端,镜像方式部署,指定数据库地址,并初始化数据库脚本 部署执行器端,启动后自动注册到调度中心,可以配置多个执行器名称 注解指定任务handler 可以指定邮件告警,也可以稍微修改源码对接到钉钉告警 任务表 ...
众里寻他千百度。蓦然回首,那人却在,灯火阑珊处。
背景 项目中一般需要定时任务或者实时同步服务的部署 设计 要求 支持定时任务 支持一次性任务 支持实时任务 任务支持中断(常见批量任务处理,可能出现异常) 实现 框架 部署服务端,镜像方式部署,指定数据库地址,并初始化数据库脚本 部署执行器端,启动后自动注册到调度中心,可以配置多个执行器名称 注解指定任务handler 可以指定邮件告警,也可以稍微修改源码对接到钉钉告警 任务表 ...
背景 将项目拆分成多个子模块。 有以下好处: 代码组织清晰 便于并行开发,便于维护 model和common一般可以复用 设计 实现方式 定义父模块,声明子模块,依赖管理,定义依赖版本。 创建子模块,例如common,通常不依赖其他模块。数据模块和服务模块。
一、业务架构 处理会员入会、账户管理和第三方平台集成。 1、账户管理 支持创建账号和店铺绑定 按照账号分库分表 2、用户管理 用户基本信息查询 用户入会、退会、历史用户接入 3、第三方模块集成 电商平台会员等级、积分打通 下游品牌打通 二、技术架构 1、整体框架 多模块架构:基于Spring Boot的多模块架构 ...
背景 排查问题,系统之间往往需要定位到同一个链路请求,因此需要链路追踪。 另外一些实时业务需要针对性监控时效性,并告警通知。 设计 要求 需要提供全链路追踪id 需要监控同步进度 实现 版本一 ...
背景 用于商家积分兑换商品活动 订单送积分 营销送积分 实现 要求 不允许超扣 需要幂等,应对网络问题和重复提交等情况 需要高性能 需要风控,避免薅羊毛 针对锁单需要支持积分预扣 针对退单需要积分回滚 步骤 用户校验 余额校验 用户限额校验(基于redis累加,计算剩余可赠送积分值) 调用存储过程 用户余额校验 加锁(MySQL lock 锁定用户id) 写入积分日志(开启事务) 更新用户余额 其他要求 如何避免超扣 MySQL层面的lock,也有遇到需要超扣的场景,用户一开始就可以使用一定积分,后面再来归还积分。 ...
背景 应用的接口往往需要多重的鉴权保证生产环境的安全,防止攻击 例子 ip维度 配置ip白名单,限制访问ip 可信服务名 由于主要是对内部上游的业务平台,配置对应的可信服务名,允许跳过ip直接访问 ...
背景 工程项目需要持续的构建-发布能力 实现 持续构建 TeamCity。 区分环境进行构建 可以构建代码包及镜像形式 可以配置触发器,代码提交时自动触发构建 发布 聚石塔 or 阿里云k8s集群版 ...
背景 当遇到如下场景需要考虑限流以保护整个系统不发生宕机 暴露给品牌方接口,可能存在突发流量 大促时,暴露给平台端的接口,可以由于品牌或者平台的活动,接收到大量的c端流量 设计 要求 关键接口尽可能高性能 当发生高频请求时,告警通知 限流组件 支持动态限流 实现 实例环境隔离,区分开平台流量和品牌流量,通过请求头方式隔离大查询(慢sql风险) 统计网关层的tp99并对接钉钉告警,业务日志需要包含请求耗时 限流组件使用sentinel 结合guava封装限流注解实现单机限流 扩展 常见限流算法 ...
背景 积分回滚 针对特定的积分操作回滚,避免用户使用回滚刷新积分有效期。例如积分加钱购买商品。 之前发生退单时,需要重新赠送积分,会导致原来使用的积分重置有效期。 ...
背景 积分过期是一个常见需求,常见的如先进先出模型,另外需要允许客户端传入过期时间 设计 要求 允许外部定义积分规则(相对时间和绝对时间) 允许外部传入过期时间,如没有传入则默认采用规则计算 过期积分不允许使用 年末海量过期考虑性能 实现 过期积分实现 ...