牛骨文教育服务平台(让学习变的简单)
博文笔记

ID临时方案

创建时间:2018-10-26 投稿人: 浏览次数:392
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mengdonghui123456/article/details/83410176

     下面从特性、规则、生成、模块传递等几个方面对这四个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(***参数长度不符)

业务调用不需要传递,抛出业务自定义类时需要抛出;或打印日志时输出;

 

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。