java实现平方根
方案一:二分法,无限逼近
如何使用java语言计算一个正整数的平方根呢(自定义Sqrt函数)? - 灰信网(软件开发博客聚合)
时间轮的原理与应用
时间轮原理及其在框架中的应用_服务器_vivo互联网技术_InfoQ写作社区
时间轮的应用
1)心跳检测
2)超时处理
3)Redisson 分布式锁续期
普通定时任务的缺点
接口并发量大扛不住你的第一反应怎么解决?
第一反应肯定是报告领导,配合运维调查原因,然后做出应对措施吧,都没具体说什么接口,什么业务,就无脑加缓存了,而且加缓存就是改代码吧,改代码需要上线吧,上线是大事,需要领导审批,没对症下药,上线没效果怎么办,这是拿生产环境来测试效果,很严重的生产环境禁止行为,如果面试的时候你跟我说加缓存,我只能说你一点工作经验都没有,我要的是实际工作技巧,而不是待在象牙塔里只懂八股文的学生;
一般公司的一套上线流程走下来,系统早顶不住了。我们是先查哪个接口的问题,在使用nginx先把这个接口给封了,然后该扩容就扩容,该加缓存就加缓存,该改代码在改代码;
第一反应应该是为什么会流量激增,是业务时段的特殊性还是人为攻击,问题不定性就忙着解决更容易好心办坏事;
第一反应不是应该直接去定位做perf分析?说不定是你团队某个撒币队友没有加mysql索引呢?说不定是你硬盘有问题导致io慢了?说不定是你路由器炸了导致网络有问题?我是反对直接一上来就加缓存的,哪有这么玩的?
面试官:说下你公司系统怎么设计防重复数据的
1)唯一索引
2)乐观锁,版本号控制
3)分布式锁
4)状态机幂等:订单等单据类业务,存在很长的状态流转,一定要深刻理解状态机,对业务系统设计能力提高有很大帮助
5)单独整一个防重表
YY直播一面
1.mysql的binlog和redolog如何保证数据的一致性,MVCC有了解嘛
两阶段提交
2.索引覆盖和索引下推是什么
3.redis的map是怎么做的
4.redis做排行榜是怎么处理的,如果排行榜分数相同,我想要最先到达分数的排前或者后,如何处理
ty的0拷贝是怎么做的
6.cpu过高如何处理,我答了top,面试官问还有没更加好的办法【结束之后问了他这个问题,阿里的arthas】
7.用过哪些rpc协议,JVM参数
8.问了下tcp的三次握手,意思一下
GG也是不难的问题,就是全问到我没被问过的点子上,草
图片对比方案的问题:服务器有用户上传的图片,手机上有的上传,有的没上传,如何找出没上传的,名字对比不可靠,不能用这种方式
方案一:
上传的时候存个内容的md5,md5对比
ps:之前AMS保存从PMS获取过来的定价详情时,也同时获取到了该定价详情的md5串,比较定价时,实际比的是md5串;
讲述布隆过滤器和BitMap的应用
如何快速判断一个用户是否访问过我们的 APP?
cpu使用率过高和jvm old占用过高排查过程
面试官:如何用最少的老鼠试出有毒的牛奶?
spring-retry注解
确实很优雅,所以我要扯下这个注解的神秘面纱。
漫画 | 一台Linux服务器最多能支撑多少个TCP连接?
我越来越意识到,面向失败的设计,才是保命之道。
数据库篇
锁住余额,为何还会更新异常?
MVCC多版本控制
1)多版本控制: 指的是一种提高并发的技术。最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样大幅度提高了InnoDB的并发度。在内部实现中,与Postgres在数据行上实现多版本不同,InnoDB是在undolog中实现的,通过undolog可以找回数据的历史版本。找回的数据历史版本可以提供给用户读(按照隔离级别的定义,有些读请求只能看到比较老的数据版本),也可以在回滚的时候覆盖数据页上的数据。在InnoDB内部中,会记录一个全局的活跃读写事务数组,其主要用来判断事务的可见性。
2)文中还有一个关于多版本并发控制的例子,可以记一下
一次慢查询暴露的隐蔽的问题
1)关注mybatis会自动进行java Date类型到数据库Timestamp类型的转换
2)隐式类型转换发生在索引字段时,会导致索引失效,索引失效也就导致慢查询
问题原因:
因为项目设置了不同包下的,日志级别不同。而用户自定义的一个feign的decoder解析response的过程依赖于日志级别,只有在是debug级别时才走重写后的toString()方法(该方法内会读取响应流字节数组,最终得到json数据),而另外的包是info级别,导致没走重写的toString()方法,而是走了Object自己的toString()方法,所以就打印出了对象地址而不是实际的响应json数据
这个问题的关键,还是在于响应的解析,强依赖了日志级别
【高级进阶】真实案例!如何解决源码级问题!为什么要刨根问题!_哔哩哔哩_bilibili