服务描述

负责记录audit日志的服务。

主要API

GET admin/audit-logs/transaction-group-id/{transaction-group-id}

通过transaction-group-id动态查询audit logs。需要校验权限。

GET audit-logs/{audit-log-id}

通过audit-log-id和channel(从jwt.aud获取)查询audit logs。

GET audit-logs/cfo/{audit-log-id}

通过audit-log-id查询audit logs。

GET audit-logs/templates/{functionGroupCode}/{type}

GET audit-logs/transaction-group-id/{transaction-group-id}

POST audit-logs/inquiry-unmapped

POST audit-logs/cfo/inquiry

POST customers/activity-logs/inquiry

POST customers/audit-logs/inquiry

通过userId动态查询audit logs,需要被search_mapping和result_mapping使用。

POST customers/audit-logs/inquiry-unmapped

POST internal/audit-logs/inquiry

GET /logout/activities 校验短token的有效性

用户登出后,显示用户在登录期间的audit信息。通过user sessionId查询audit日志。

流程

domain ms → audit-log/logout/activity → audit-callback/inquiry → INB USP

audit-log根据两个配置,决定是否获取INB的数据还是获取本地数据库的数据。


请求参数描述
pageNodefault 0
pageSizedefault 10
sortOrderASC or DESC


响应参数描述
statusSUCCESS or FAILED
dataList<Object>
data.idaudit log record id
data.txnTypetxn type or function code, BBO
data.fromsourceRef, CFO
data.todestinationRef. DEST_REF
data.amount11.23
data.refNumber
data.currencyCodetxn currency, USD
data.logTimetxn activity time, 1684226077262
totalCounttotal count of matched record
pageNocurrent page No
pageSizecurrent page size


主要listener


主要业务流程


主要架构设计方案


主要数据库设计

token

token信息表,包括token取值,channel,group,用户ID,是否撤销,撤销原因。

FieldRemarkValue
ididUUID



遇到的问题和解决方案

ms-auditlog服务有一张主表需要保存18个月的记录,数据库7亿+,单表查询缓慢。已经做了分区(创建3个月分区,detach14个月,delete18个月),索引。

方案:读写分离,分表,优化分区,优化索引。

读写分离:考虑到该表是主表,而且是共享数据库(AUTH),写入频繁,大多是上游服务异步发送消息,对性能要求不高。读取不频繁,主要是后台管理平台需要读取数据。

通过读写分离,可以降低数据库的压力,提升读操作的性能。

优化分区,考虑18个月分区一共7亿+的数据量,平均每个月分区有3800万+。

如果时间跨度不变,使用周分区一共72分区,平均每一个周分区900万+。如果使用日分区一共504分区,平均每个日分区100万+。

问题:如果查询时间跨分区,数据量仍然很大。二是公司分区数量限制。

优点:日查询性能提升。查询时间跨度越小,性能越明显。

优化索引:增加组合索引

CREATE INDEX idx_tlog_grouped on v_audit_log_v3 (owner_lgn_id, fnc_cd, action, actv_time);

通常复合索引的字段的顺序根据查询的使用频率和选择性来决定。选择性高的列(即较少重复值的列)应该放在前面。

问题:如果查询变化,使用了更多字段,可能导致复合索引失效。

方案:为常用的查询方案增加复合索引。


优缺点和改进方案分析,业界对比