ID临时方案
下面从特性、规则、生成、模块传递等几个方面对这四个ID进行定义和解释说明。
ID类型 |
特性 |
规则 |
产生 |
作用 |
场景 |
使用 |
RequestId |
唯一性 排序行 归并性 |
纳秒数(15)+系统编号/类型(3)+用户ID |
网关接受线程进请求后在网关逻辑模块产生 |
用于保证浏览器每次请求的独立划分 |
1.排序:对用户的请求进行排序和简单的时间定位; 2.归并:将某一用户的请求归类并排序,分析用户的操作行为。 |
网关接收请求后在网关逻辑模块创建。如果需要将请求的调用练成线记录,则在调用其他模块时传递requestID |
SessionId |
唯一性 |
随机数+时间+jvmId |
浏览器第一次访问服务器时,服务器调用HttpServletRequest.getSession(true)方法产生session。sesionId和它对应的唯一标识 |
服务器端的session保存着用户登陆的信息,通过sessionId可以找到session中用户的信息 |
1.根据sessionId判断是否是同一次会话,既用户是否已经登陆; 2.当用户请求量很大时,可以通过设置session的过期时间来及时清除内存减压。 |
在权限模块或实现CAS时,可能需要使用,其他模块不需要使用和传递。 |
HandleId |
唯一性 归并性 |
业务系统编号(2-3)+时间纳秒数(15)+随机数(1-3) |
全局使用(业务需要定义唯一性时) |
唯一标识某物,使其在系统内部具有唯一可识别性 |
用于生成设备id、用户id等 |
|
ResultId |
首位(成/败):1 + 系统标示符:000 + 错误类型: 输入参数数量有误01 输入参数格式有误02 返回结果有误03 + 具体错误描述码000: |
全局使用,当业务逻辑判断出现break的情况下产生 |
返回错误码,帮助定位问题。 |
例如: 100101003 1(失败)001(权限模块)01(输入参数格式有误)003(***参数长度不符) |
业务调用不需要传递,抛出业务自定义类时需要抛出;或打印日志时输出; |