Q1:针对一个用户比较大,并发请求数比较大的项目(高并发),排除增加硬件设备和带宽的可能性,如何最大化利用系统资源,提升系统性能?请从系统框架和数据库优化两个方面阐述。
Q2:数据库遇到性能问题,请简述解决问题的思路。
Q3:简述服务器集群处理请求的基本流程,主要分析集群提升请求执行效率的原理。
JAVA面试过程中遇到一个PM提出如上问题,顿时汗颜~~平时工作没太注重这方面,对上述任意问题有自己理解的分享一下,敬请期待!
你这是几年工作经验(多少钱的岗位)问到这些问题的?
Q1:如果对时效性要求不是太高的话,首先考虑静态化。静态资源请求处理耗系统资源少,不会请求数据库。数据库方面可以加个缓存,或者查询频率高的直接全部放redis。(再接着问的话再接着往深里回答)
Q2:数据库性能问题?这题太抽象,反问一句具体场景,再具体问题具体分析。这块我也不熟。但是数据库一般就分表、表分区、分库、索引。
Q3:简单的实现可以是 nginx用upstream做负载(apache同样可以),静态资源直接urlrewrite到专门服务器上,对后端请求通过upstream配置分发到不同服务器上,这里主要做一些session复制或者自己实现一套无session的用户跟踪机制。或者更复杂的,在第一个server前搞个lvs。原理主要就是多服务器处理请求。其实负载这些都是专业的运维搞更好,术业有专攻。并且小公司的项目并发也不会高到哪里去,真高了也就有钱找专业的运维了。 ######我才两年多,回答的不错,赞!###### Q1就是扯淡,没有具体场景,方案完全不一样。 ######回答这种题目也没什么扯淡的吧,主要还是考你知不知道这方面的知识。你可以在交流过程中自己把场景限定下来,然后给出解决方案的思路,这种问题没有标准答案,面试官也会根据你的回答来深入探讨,看面试者的水平在什么level。###### 现在企业数据量庞大,应用越来越普及
所以性能问题很明显,重要性比较突出 ###### 现在普通的笔记本都安装64位,内存好大
不做集群自己试试那就等于浪费 ######不排除有的公司是为了拿这个来考验你的实力!也不排除它这个公司就有那么大的数据流量。######可以参考一下我的博客关于系统调优的###### 哈,我给楼主正确答案吧。问你问题的,最近正在考虑这些,而且自己琢磨出来一套方案了,想看看是否有共鸣,或者让别人说些更sb的方案好bs一下,然后乐乐,别无其他,答的有点上路子,但被bs,是最佳状态。如果你一不小心,呼呼呼,顺着他的思路,说了很多他暂时还没想到的,基本他会10分钟内容去找技术总监“来了个狠的,招架不住,大哥,帮一把吧。。。”
如果你遇到这种情况,就是技术总监,过了5分钟慢悠悠的来了,一般他不会如pm那样问直接问题,而是随意聊聊,大体套路就是”刚才我同事已经和你交流了不少,你的水平很不错“云云。随后会尽可能了解你的整体情况后,再下手做技术对答。
不过面试时,能把pm说晕,让技术总监出来的,基本上也就大家交个朋友了,因为暂需岗位和你的人力已经不匹配了。。就当喝下午茶。这种事情我干过。
补充说一点,pm这个级别出来面试,一般都会从自己的视角面来谈技术。所以通常会问自己正在琢磨的问题。你就是提出一个足以否定他们的更好多方案也不会改变他们已经实施的计划。 ######我顶######我刚毕业1年,也问我这些。问我集群,问我给数据库优化,问我hadoop######
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。