✅3年经验,985本科,电商财务相关业务

✅3年经验,985本科,电商财务相关业务

面试者背景

:::warning 3年经验,985本,2份工作(0.5+2.5),电商财务系统,财报相关,账户管理,银企直联,介绍下这个项目的主要流程?直接接的银行?大额支付。

银行的对接怎么做的?网关、前置机(盾、证书),如何能高效的对接银行?网关,模板**+**策略,

和银行的接口如何保证安全?单号幂等、异常case,核对。

银行的大额通道下班了怎么办?定时任务查询,对接时有遇到过一些问题么?

定时任务框架,多久调度一次?5分钟,支付单表多少数据?百万级。如果数据量更大的话,这个方案会有什么问题么?这张表是怎么建的索引?状态**+**发起支付时间,为什么要按照银行扫?

如果后面表中数据变大,扫表慢,如何优化?分片扫、归档、分表,

知道分片任务的原理?如何实现多线程同时扫表?按照银行,

项目中什么地方做了限流?哪个接口做了限流?咋实现的限流?redis+aop,有时间窗口吗?没有

如果finally还没来得及执行,机器就挂了。

为啥不用成熟的限流算法?漏桶、令牌桶区别?突发流量、令牌桶可以处理突发流量的原因是啥?

一个接口,什么情况用漏桶做限流、什么情况用令牌桶?

限流的数字是怎么定的?日常QPS

你们和银行是怎么对账的?定时任务扫银行拉流水???支付单**&银行流水、支付单&**上游,

如果你没有支付单,但是银行有流水呢?银行账单,落库吗?然后如何核对的?

日切时间点,对账不一致怎么办?没有日切问题。如果有这种问题,怎么办呢?

对账这部分,你有什么最佳实践么?多方核对、及时告警、人工处理、

做过实时核对吗?代码中反查?

支付单是你设计的吗?有哪些设计的好,哪些有优化空间。支付单怎么设计的?codebiznoid,时间,账号,银行,日期,状态(INIT、审批、支付中、支付成功、支付失败),有用状态机么?

支付单表和哪些表有关联关系?银行流水表(银行流水号、账号、银行code、时间、借贷方向、)。为什么不直接冗余到支付单上,要创建一张表?附言、

财务业务项关的做过哪些?关帐系统、发票系统,

**介绍下什么是借贷记账法。**ABS

工作中遇到过哪些线上问题么?消息堆积如何处理?

一个JAVA进程突然挂了,可能什么原因?OOM?OOM了进程一定会挂么?

:::

题目解析

:::color4 银行的对接怎么做的?网关、前置机(盾、证书),如何能高效的对接银行?

和银行的接口如何保证安全?

:::

✅和其他公司做数据交互时,有什么需要注意的?

:::color4 定时任务框架,多久调度一次?5分钟,支付单表多少数据?百万级。如果数据量更大的话,这个方案会有什么问题么?这张表是怎么建的索引?状态**+**发起支付时间,为什么要按照银行扫?

如果后面表中数据变大,扫表慢,如何优化?分片扫、归档、分表,

知道分片任务的原理?如何实现多线程同时扫表?按照银行,

:::

✅定时任务扫表的缺点有什么?

✅xxl-job 支持分片任务吗?实现原理是什么?

:::color4 项目中什么地方做了限流?哪个接口做了限流?咋实现的限流?redis+aop,有时间窗口吗?没有

如果finally还没来得及执行,机器就挂了。

为啥不用成熟的限流算法?漏桶、令牌桶区别?突发流量、令牌桶可以处理突发流量的原因是啥?

一个接口,什么情况用漏桶做限流、什么情况用令牌桶?

限流的数字是怎么定的?日常QPS?

:::

✅什么是限流?常见的限流算法有哪些?

✅什么是滑动窗口限流?

✅漏桶和令牌桶有啥区别?

✅什么是压测,怎么做压测?

✅finally中代码一定会执行吗?

:::color4 你们和银行是怎么对账的?定时任务扫银行拉流水???支付单**&银行流水、支付单&**上游,

如果你没有支付单,但是银行有流水呢?银行账单,落库吗?然后如何核对的?

日切时间点,对账不一致怎么办?没有日切问题。如果有这种问题,怎么办呢?

对账这部分,你有什么最佳实践么?多方核对、及时告警、人工处理、

做过实时核对吗?代码中反查?

:::

✅怎么做数据对账?

:::color4 工作中遇到过哪些线上问题么?消息堆积如何处理?

一个JAVA进程突然挂了,可能什么原因?OOM?OOM了进程一定会挂么?

:::

✅RocketMQ消息堆积了怎么解决?

✅Java进程突然挂了,可能是什么原因?

✅Java发生了OOM一定会导致JVM 退出吗?