分布式锁和幂等性?用了redis的分布式锁解决了幂等性,然后blablabla。
问我setnx的key只用用户吗,那不是别的场次该用户也不能抢了吗,ttl是怎么样的?
提出了用订单作为key,下来后我想了想young当前商品的id+用户id来实现。订单key的话貌似也行。
削峰填谷的问题?Rabbitmq来完成blablabla,然后其实我很害怕他问数据一致性的问题了,属实是ptsd了。
RabbitMQ如何解决分布式的?死信+TTl,最终一致性。主要就是订单取消了,那么需要解锁库存。然后订单支付了或者那么就不用解锁了。
如何解决超卖问题?redission信号量,第三方的。
然后我解释的时候用了redis里面放值,然后每次查询,减。
并发安全?Lua脚本实现原子性质。
当然我前面说的redission的信号量是第三方的,其实原子性什么的都已经考虑进去了。
然后面试官突然想到,那有时候有些场景,我可以有超卖一点东西。因为大家下单了,也不一定会支付。
我其实有点难以理解,因为玩意都支付了怎么办呢?
然后后面面试官说,主要是先信号量可以设置多一点,然后动态调整这个库存,就是在秒杀的过程中,如果下订单支付订单是很多的,那么动态减小,如果很多人都其实不支付的,那么动态增加。
我补充说,我想到一种,再支付的时候在判断库存,没有的话就不让她支付。
面试官说,极端情况可以。但是体验非常不好。
问我消息中间件看起来rabbitmq用的多呀我说是的,还有什么吗。我说了解kafka。
区别?
Kafka吞吐量大,一般高吞吐量的都用它
Rabbitmq路由更加灵活,同时执行速度很快,us级别,比kafka快。
我当时用这个是因为kafka配置更加麻烦一点,还有zookkooper,而rabbitmq只需要ocker部署即可。
有一些想不起来了。
为什么想到这几个学习项目呢?
然后问我看你Java技术栈掌握的挺好的,为什么想到来测开呢?
主要的意思是权衡了今年的竞争压力,感觉还是得诚实一点。
我们这边其实跟你的技术栈是很符合的,blablabla。
你觉得你做侧开有什么优势吗?或者说你觉得测开是怎么样的?
我讲了很多,但是面试官讲了更多,真的挺好的。
主要有一点,我懂一些技术栈,所以可以更好的做一些白盒测试等等。
然后说,看你字里行间,还是测开是第二志愿呀。
我说,能做测开我也做的。因为。。。说不出来了,工作不好找呀。
本来是准备了的,看聊的比较久了,然后也挺好的,就没了。
准备是准备了的,拿来一题吧,讲讲思路。(md,多嘴了呀)
海量数据,数据的内容只有int整数,给你一个数据,如何查找最快?
一开始没有太懂,以为就查询一次,直接一个个查询呀?
说是以后每次给你,查询都要快。
我先说了先用归并将数据排序,然后每一段数据标志出这段区间的数据,然后二分。
面试官说,你考虑是一个32位的整数,可以考虑数据压缩吗?
啊奥奥,用一个很大的2^32的个数的二进制书,如果数字n存在,那么相应的位置置1。
部门,技术栈。
做石油能源的貌似。
37min
问的挺多,不难,面试官人也挺好的,没有为难。
你也知道你报的是测开岗位,对测试开发的了解。
Blablabla,当然也诚实的说了,可能后端了解的更多一些。但是也可以更好地进行白盒测试。然后权衡了今年就业的竞争压力,所以投了滴滴测开,我挺想进滴滴的。
黑盒白盒的区别?
联邦学习的运用场景?
难点?
有了解过kafka吗?为什么不用呢?
介绍了两者的区别。然后说考虑到rabbitmq的路由的灵活性以及传播方式,然后kafka的部署稍微复杂一点。
怎么想到做性能测试了?
你有没有想过并发量是550之后,有没有考虑过是什么限制了并发量?
我说了redis的内存不够?本地电脑CPU不够?等一些问题。然后又补充当时的秒杀已经做了很多优化了:rabbitmq的异步,削峰填谷,单一微服务,nginx动静分离等等。
(我感觉可以这么说:我知道其实做优化,最主要的还是代码层面的优化,然后就是逻辑方面,这一些我当时都已经查了很多资料做好了,比如rabbitmq异步,nginx动静分离等等,然后我就考虑是不是redis的内存不够了?cpu性能问题等等?当然一开始是说了JVM的对内存调优的)
性能测试的时候有没有遇到一些bug之类的?
给你一个场景,比如登陆,需要账号密码,你考虑哪些一些测试用例?
mysql的慢查询?
讲了如何开启日志?然后索引方面?
然后讲了如何解决就是分库分表,慢查询之类的。
为什么索引比不索引快?因为排好序了,二分查找呀。
索引底层怎么实现的?也是B+,顺序,类似于二分查找。
Redis的击穿问题?讲了由来和解决方案。
Hashmap的查询时间复杂度?O(1),最坏情况呢?O(logn)或者O(n),看数据是链表还是红黑树?
Hashmap线程不安全,会带来啊些问题?数据覆盖,1.8以前由于头插法扩容时候的死循环问题等等。
项目里面的难点?
介绍了恐龙商城的调试。
到时候我过去的话,是去哪个部门,统分的还是跟你一起的部门?
脚本的话用什么语言?都可以看自己。
部门的业务?
技术面一共几面?