SAP 虾图昂塞

  • ⽩⼈mgr, 考了⼀下如何设计⼀个hotel reservation system 我就简单说了⼀下ood
  • 烙印manager 考了⼀道find second largest number in a array,然后⼜考了⼀道product of array except itself, 左右各扫⼀遍,可以避免0的exception,问了⼀下设计,假设⼀个分布式服务器连接到后⾯的同⼀个数据库,如何加个cache layer? 我的回答是 先hash⼀下准备要存的数据,看看他如果要被换成,应该缓存到哪个服务器上⾯去,然后再到那台服务器找有没有缓存过这个数据。
  • 好像是东欧的⽼哥? 设计⼀个dropbox类似的后台,但是⼜不是dropbox, 给你⼀个getNextFolder api 每次这个api会返回⼀个folder的名字,类似于一个iterator, folder的名字只有6个字符,要求⾮常⾮常低的延迟 0-9 a-z,这个系统还要是分布式,也就是说user A call 得到00001, user B call的话得到00002 所以⼀共是36种字符 所以就是有6^36个folder,楼主的做法是存⼀个auto increment的数字在数据库, 然后在⽤这个数字hash来转换成⽂件夹的名子,比如 42 返回就是000016。然后叫我把这个hash的算法实现给写⼀下 最后⼜考了⼀下如何设计⼀个uber后台,就简单的问了⼀下uber的high level implementation
  • 烙印,longest non repeated string, 还有如何⼿动实现⼀个arraylist,然后就是聊聊spring的知识
  • 之前跟我店⾯的⽩⼈⽼哥,给你⼀个rest server,每次要从这个rest server读取payment的信息,payment的信息有 uuid, amound, description 这个rest server后⾯是sql db,payment的信息都是客户把raw file丢⼊s3 bucket 然后这些⽂件⾥⾯的数据会到数据库⾥⾯。请问如何设计这个系统 我的答法是在s3和rdms之间建⽴⼀个parse的微服务,然后⾯试官问我有没有办法让他只是有需要的时候跑 不⽤把服务器⼀直run,那很显然就是serverless, 我说⽤lambda, 每次有⽂件上传到s3的时候,都会给lambda产⽣⼀个pull event 他说ok 但是我说⽤lambda的话 active run time只能是5分钟以内 假如要parse⼀个十分巨大的⽂件 那么lambda会产⽣ timeout ⾯试官很满意,然后说了⼀下假设只是很⼩的⽂件⼏个mb 那我说lambda⾜够了。他⼜问 如何不把数据库密码放在 lambda⾥⾯呢? 我的回答是⽤aws⾃带的role access,让lambda可以assume这个数据库的role with write permission。他⼜问了 假设这个数据库很经常崩 怎么办? 我说master slave, master负责写和replica,然后slave负责request的读 这个可以减少master的read load, 或者加⼀个cache layer ⾯试官很满意
    后⾯我⼜提了⼀下 db可以换成nosql 然后就是问我怎么设计这个rest server 的api