- 浏览: 2317 次
- 性别:
- 来自: 杭州
最新评论
文章列表
遇到了几个需要生产唯一键的场景
1:仓储系统,库内各类单号需要唯一并带有一定的业务意义
要求:AAAA20151212000000001 AAAA为舱内业务编码,中间8位为对应的年月日,后8位为唯一键保障。
2:电商订单系统,订单号需要唯一
要求:28710080047686 后四位为买家Id(for分库分表),前面数据为唯一键保障位。
3:聊天app系统注册用户Id与评论Id唯一键需求。
要求:etx32s 用户Id唯一值
三个需求中,都要求有一个能保障序列号唯一的键值。分布式系统中,保障键值唯一的方案较多。比如:简单粗暴的DB自增序列,MD5 ...
自动内存管理机制
1 虚拟机栈:存放某个函数方法中得局部变量,为虚拟机执行java方法服务。为线程私有的内存
2 本地方法栈:栈,为调用native方法的服务。
3 java堆:存放所有得对象实例,java虚拟机器所管理得内存中最大得一块。java堆被所有线程共享。垃圾回收管理的主要区域。
4 方法区:存放已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。常被hotspot作为永久代处理
5 运行时常量池:方法区的一部分。存放编译时生产的各种字面值和符号引用。
6 直接内存:jdk使用native函数库直接分配的对外内存, ...
整体思路说明:
对于并发限制请求,会统计当前的并发数,并发数统计原理:1次请求进入到限流模块incr 1;等请求结束退出时decr 1,当前正在处理的请求数就是并发数
对于QPS限制请求,统计QPS不能按照秒统计(第1s系统就可能就被打挂了),所以QPS得按照毫秒级别去统计,统计的级别越小,性能损耗越大,所以定在10ms-100ms的级别去统计,基本逻辑如下将1s中切成10份,每一份100ms,一个请求进来肯定会落在某一份上,这一份的计数值++,计算当前的QPS,只需要将当前时间所在份的计数和前面9份的技数相加;内存里面需要维护当前秒和前面2秒的数据,数据结构以环形数组为基 ...