小红书Java平台开发二面面经
- 轮次
- 二面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 工作流如何搭建?运行时怎样决定下一个节点?
- 工作流系统最难的问题是什么?如何判断人工确认后哪些节点需要重跑?
- 人工确认流程如何防止重复确认和过期确认?
- Validator 如何处理跨字段和跨节点校验?
- 多币种金额如何避免精度和尾差问题?
- 外部渠道调用超时但结果未知时如何处理?
- 工作流发布后如何管理定义版本和运行中实例?
《参考解析》
- 工作流推进:节点完成后提交自身结果和事件,由调度器依据已提交快照计算满足条件的出边,再创建后继节点。节点处理器不直接修改“下一个节点”,这样能避免事务未提交时后继节点读不到输出。
- 失效传播:为节点记录实际依赖字段和输入指纹,业务数据变化后沿依赖图传播失效;纯计算节点可重跑,有副作用节点需进入待确认状态。并行汇合节点必须等待所有有效前驱完成,不能复用旧分支结果。
- 确认幂等:确认任务携带流程版本、节点版本、过期时间和令牌,服务端通过版本与
PENDING条件更新保证只有一个请求成功。条件更新影响行数为零时应回查最新状态并返回幂等结果或失效原因。 - 金额与渠道:金额使用定点数和
BigDecimal,计算绑定汇率版本与舍入规则。外部调用超时不能直接重试扣款,应先用业务请求号查询渠道结果;无法确认时进入 UNKNOWN,由对账任务继续查询。