您的位置:首页 > 职场人生

今天收到阿里巴巴一个电话面试

2017-05-19 22:01 357 查看
1如何区分同一session不同会话用户

答JsessionId

2redis有哪些常用数据类型

答:string,list,set,sorted set,map

3redis客户端get请求流程

客户端执行一个命令的流程如下:
通过Socket发送请求协议
Server通过读事件接受请求,且存入查询缓存
从命令表找到相应的命令实现
执行命令,且把执行结果存入到响应缓存中
客户端写事件就绪的时候把相应缓存中的数据传回客户端

提问时特别提到了多个redis服务器客户端是怎么选择其中服务器的
4synchronize是可重入锁么

答:是

5有哪些不可重入锁

答:这个问题我也想不出来哪些锁是不可重入的,我只是回答java锁是cas实现的,里面有逻辑代码可以实现可重入和不可重入

网上搜了一下,也没发现哪些锁是不可重入的

6你的项目中为什么要用groovy

答:我们用了grails框架,grails和ruby on rails一样是预定优于配置的,提高开发效率,groovy语言是动态的jvm语言,语法简洁,开发效率高

7groovy两个工程Bean怎么引用

答:这个不知道,用groovy的时间不长

8你项目中为什么不用分布式事务

答:没有用

9一个高并发的数据库插入保持正确一致性需要注意什么

答:首先看数据源是单数据源还是多数据源,如果是单数据源就用一般事务,如果是多数据源就用分布式事务,如果多数据源是异构的分布式事务更复杂;

其次高并发系统瞬时来的数据量可能和数据库处理能力不匹配,要考虑使用缓存,缓解数据处理压力

10请介绍你做过的一个项目

我介绍了做过的一个拉取淘宝订单数据,分表存储,的会员服务组件,两个月会员数据5000万,订单数据1亿

10a:有什么技术难点

答:订单数据有可能一天都拉不完,采用多线程的方式拉的,用到了并发技术;数据是采用卖家昵称分表存储的,数据拉取有可能失败要考虑一定的容错,采用记录

任务的方式,失败的任务重新执行,每个表都存储一部分卖家数据,采用了一些参数保证数据均匀分布

10b:我有一个卖家要找到所对应的表是怎么找的

答:有一张原数据表,表中记录了卖家和他所对应的会员表和订单表的表名,及会员表中的记录数和订单表中的记录数,根据卖家昵称查询对应的表名

10c:原数据表是否存在单点问题

答:是的,架构初期没有考虑单点的问题

10d:数据拉取有没有采用集群

答:没有采用集群,架构初期比较简单

10e:如果采用集群需要考虑哪些问题

答:首先要考虑任务分割的问题,订单数据是有时间戳的,根据时间戳分割任务,分割任务的机子必须是统一全局的

10f:主键是怎么生成的

答:主键是淘宝那边的主键,不需要我们生成

10g:如果要你自己生成,你会怎么生成

答:UUID,统一的主键生成服务,每张表的主键加上表名前缀

10h:这个服务是怎么对外服务的

答:采用dubbo

10i:你对dubbo有多了解

答:dubbo是分布式服务系统,支持集群,负载均衡,灵活配置合管理

10j:dubbo服务发现是怎么发现的

答:http,redis,zoonkeeper

11你能介绍一下其他项目么

介绍了一个地图优化项目,问了具体的优化细节

12你有什么问题么

答:问了为什么打电话给我,是哪个部门的

13请举例哪些地方用到了责任链模式

答:Filter,Interceptor

14redis怎么解析字节数组

答:这个题我答不上来

总共面试花了40分钟,可能会有现场面试哦
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: