技术类
1.maven里的verify有什么功能?
2.arraylist和linklist有啥区别?
3.中间件metaq怎么使用?其中topic和tag的区别是什么?
4.安全测试有哪些?举例说明
5.python和java的区别和各自的特点
6.访问一个网站,地址解析和访问的原理是什么?
7.存储过程和mysql的优缺点有哪些?
8.缓存击穿和缓存雪崩的区别是?
9.什么是深拷贝,什么是浅拷贝?
**
- 缓存雪崩
**
当缓存服务器重启或者大量缓存集中在某一个时间段失效,这样在失效的时候,也会给后端系统(比如DB)带来很大压力,造成数据库后端故障,从而引起应用服务器雪崩
**缓存击穿**
重在穿透吧,也就是访问透过redis直接经过mysql,通常是一个不存在的key,在数据库查询为null。每次请求落在数据库、并且高并发。数据库扛不住会挂掉。
解决方案
可以将查到的null设成该key的缓存对象。
当然,也可以根据明显错误的key在逻辑层就就行验证。
同时,你也可以分析用户行为,是否为故意请求或者爬虫、攻击者。针对用户访问做限制。
其他等等,比如用布隆过滤器(超大型hashmap)先过滤。
一般可分为如下7个步骤:
1、浏览器中输入网址。
2、发送至DNS服务器并获得域名对应的WEB服务器的ip地址。
3、与WEB服务器建立TCP连接。
4、浏览器向WEB服务器的ip地址发送相应的http请求。
5、WEB服务器响应请求并返回指定URL的数据,或错误信息,如果设定重定向,则重定向到新的URL地址。
6、浏览器下载数据后解析HTML源文件,解析的过程中实现对页面的排版,解析完成后在浏览器中显示基础页面。
7、分析页面中的超链接并显示在当前页面,重复以上过程直至无超链接需要发送,完成全部显示。
# **mysql实现分页查询**`**
select * from table limit (start-1)*limit,limit;
**`输入网址敲回车之后的整个访问url流程?`**
其中各阶段的用时的概念需要明确:
浏览等待用时:ie只会产生两条并行的网络连接,如果超出则将排队等待直至可以建立连接,该时间记录的就是这个等待用时。
DNS查询用时:通过ie发起的,网站域名和ip地址转换的耗时。
TCP建立连接用时(包括SSL握手用时):客户端机器与要访问的Web服务器建立链路连接的总耗时,包括SSL握手的耗时。
客户端发送请求用时:浏览器向web服务器发出请求的耗时。
服务器响应用时:服务器收到客户请求到做出响应的时间。
重定向用时:服务器端从一个页面自动跳转到另一个页面的耗时。如访问www.google.com会自动跳转到www.google.cn。原始文档下载用时:下载网站的基础文档用时,如,访问www.sohu.com时,特指下载index.htm这一文件,不包括其他图片等元素文件。
原始文档下载完成到全部下载完成用时:下载原始文档中所关联的全部资源文件的用时。
智力题
有6跟绳子,每根绳子粗细不均匀,如何计算时长75分钟?
linux命令
ctrl+c 推出linux窗口
过滤某个字段,统计字段的字数 grep ‘’ xxx.log |wc -l
查找文件命令:find ~ -name start.sh
中间件如何使用
1.metaq是怎么工作的?如何使用以及topic和tag的区别