本文主要总结面试中经常被问及的问题。
先挖坑,再补充。
1、在分布式系统中,如何生成全局唯一id?
常见场景:高并发情况下,在保证并发性能的同时,如何生成全局唯一的订单号?
个人看法:
时间戳 + 随机数 +(用户id)+ 服务器机器码 + 进程id + 线程标识符
相关关键字:
UUID,snowflake算法
参考:
2、使用HTTP的GET方法,如何保证GET的内容不被篡改?
个人看法:
我个人认为如果是比较完备的中间人攻击,即follow整个http的过程,可以截获cookie,网页的token等,那只要攻击者篡改get的参数后,同时执行你的JavaScript代码,即可同时修改签名相关的东西,包括cookie值,那服务器端最终也是无法确认get的内容是否被篡改的。
3、redis使用相关?何时使用缓存?主从复制过程?集群?
(1)热点数据放在redis,因为访问量大,可以减轻后端数据库的压力;
(2)数据访问成本比较大的,如需要进行排序操作的访问;