2018-05-16

作者: 01010100 | 来源:发表于2018-05-17 15:28 被阅读23次

    Linux的epoll机制?

    为什么重写equals时必须重写hashCode方法?

    微服务调用链?

    http://blueskykong.com/2017/11/10/apm1/

    http://www.10tiao.com/html/516/201710/2651103505/1.html

    Java 现有的数据结构实现一个LRU缓存?

    LinkedHashMap    accessOrder设为true,按照访问顺序排序

    如何减少上下文切换?

    上下文切换又分为2种:让步式上下文切换和抢占式上下文切换。

    前者是指执行线程主动释放CPU,与锁竞争严重程度成正比,可通过减少锁竞争来避免;

    后者是指线程因分配的时间片用尽而被迫放弃CPU或者被其他优先级更高的线程所抢占,

        一般由于线程数大于CPU可用核心数引起,可通过调整线程数,适当减少线程数来避免。

    Spring的缺点是什么?

    Spring的缺点不多,如果非要找几个的话,我觉得是

    1、开发效率。Spring这种通过XML配置的方式,很容易配置错误,影响开发效率。

    当然有些配置可以使用Anotation配置,但是不能完全替代XML,比如包扫描,创建多个实例都需要通过XML来配置。

    Spring的这种设计是一种通过XML来编程的方式。

    2、测试效率。配置多的话,容器启动时间比较长,影响测试效率。所有有些测试,我们尽量都不启动Spring容器。

    3、有一定的上手成本。

    Spring容器初始化过程?

    https://juejin.im/post/5af8f8066fb9a07ac85a853e

    http://lumingfeng.xyz/2016/05/05/%E8%AF%BB%E3%80%8ASpring%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95%E3%80%8B-%E6%80%BB%E7%BB%933-IoC%E5%AE%B9%E5%99%A8%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B/

    http://cxis.me/2017/02/10/Spring%E4%B8%ADIOC%E5%AE%B9%E5%99%A8%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96%E8%BF%87%E7%A8%8B/

    如何测算系统并发量?

    1.如何测算并发量?

    通过访问日志(如 Nginx) ,除以相应时间片段

    2.如何提高并发量?

    具体问题具体分析,看问题瓶颈出在哪? 大概思路分三个方面

    a.减少请求数量(前端或各级缓存)

    b.减少请求实施处理量 (异步)

    c.优化容器并发处理 (线程支持、并发数支持、垃圾回收设置等)

    d.分布式 水平扩展

    Google是如何在一秒内把搜索结果返回给用户的?

    如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能?

    1000万条数据如何从数据库取出来?不能直接加载到内存?

    分页?海量数据处理:http://uule.iteye.com/blog/2419270

    新浪微博是如何实现把微博推给订阅者?

    如果由你来设计,你会如何实现朋友圈的功能?朋友圈的分页功能是如何实现的?

    http://ifeve.com/question/如果由你来设计,你会如何实现朋友圈的功能?朋/

    让您做一个电商平台,您如何设置一个在买家下订单后的”第60秒“发短信通知卖家发货?

    您需要考虑的是 像淘宝一样的大并发量的订单.

    http://ifeve.com/question/关于淘点点面试中碰到的架构设计问题?/

    秒杀系统设计?

    秒杀防止超卖?

    1、将提交操作变成两段式,先申请后确认。

    1.1利用Redis的原子自增操作(相比较MySQL的自增来说没有空洞),同时利用Redis的事务特性来发号,

      保证拿到小于等于库存阀值的号的人都可以成功提交订单。

    1.2数据异步更新到DB中。

    优点:解决超卖问题,库存读写都在内存中,故同时解决性能问题。

    缺点:由于异步写入DB,可能存在数据不一致。另可能存在少买,也就是如果拿到号的人不真正下订单,可能库存减为0,但是订单数并没有达到库存阀值。

    2、数据库层面

    2.1设计2张表:

    第一张:判重表(buy_record),该用户有没秒杀过该商品

    字段: id, uid, goods_id, addtime

    第二张表:商品表 goods

    字段: goods_id  goods_num

    2.2对(uid,goods_id)加唯一索引!

    start transaction;

    insert into buy_record。。。

    if(唯一索引报错?)

        抛异常,已经秒过了,回滚。。。

    update goods set goods_num=goods_num-1  where goods_id=$goods_id andgoods_num>0 ;

    if(受影响行数<=0)

        抛异常,商品秒完了,回滚。。。

    该方法完美的解决了超卖与select排它锁导致的并发低的问题。极大提升性能

    3、Mysql优化,改源码

    丁奇在DTCC2013上分享的《秒杀场景下MySQL的低效》,使用组提交

    生成唯一串的需求,并发请求量非常大,该如何实现?

    http://ifeve.com/question/京东面试题-有一个生成唯一串的需求,并发请求/

    1、预生成,由单独的第三方服务器(区别应用服务器来生成)

    2、格式:应用服务器ip+进程号+当前时间(精确到纳秒)+计数器

    mysql处理什么数量级的数据时,性能会急剧下降?

    1、跟mysql版本有关系

    2、使用场景了,如果是单表就是500w就会性能下降。根据业务场景进行分库分表

    分库分表,如何动态扩容?应该遵循什么原则?

    http://ifeve.com/question/使用对id取模的方法做数据库的水平拆分,如果需要/

    有关注哪些新的技术?

    职业规划是什么?短期,长期目标是什么?

    如何学习一项新技术,比如如何学习Java的,重点学习什么?

    http://ifeve.com/java-interview-question/

    https://www.cnblogs.com/java1024/p/8594784.html

    http://www.infoq.com/cn/articles/jdk1.8-abstractqueuedsynchronizer

    面试:

    http://uule.iteye.com/category/171363

    行为面试法

    http://job.chsi.com.cn/jyzd/zcht/200805/20080521/6960450.html

    相关文章

      网友评论

        本文标题:2018-05-16

        本文链接:https://www.haomeiwen.com/subject/pajudftx.html