第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
突然的二面一面的时候大概是3月12号,面完等了差不多半个月才突然接到二面面试官的电话。
介绍项目
Storm怎么保证一致性
Storm是一个分布式的流处理系统,利用anchor和ack机制保证所有tuple都被成功处理。如果tuple出错,则可以被重传,但是如何保证出错的tuple只被处理一次呢?Storm提供了一套事务性组件Transaction Topology,用来解决这个问题。
Transactional Topology目前已经不再维护,由Trident来实现事务性topology,但是原理相同。
参考:https://dwz.cn/8bXRPexB
说一下hashmap以及它是否线程安全
HashMap基于哈希表的 Map 接口的实现。HashMap中,null可以作为键,这样的键只有一个;可以有一个或多个键所对应的值为null。HashMap中hash数组的默认大小是16,而且一定是2的指数。Hashtable、HashMap都使用了 Iterator。而由于历史原因,Hashtable还使用了Enumeration的方式 。HashMap 实现 Iterator,支持fast-fail。
哈希表是由数组+链表组成的,它是通过把key值进行hash来定位对象的,这样可以提供比线性存储更好的性能。
文末领取面试资料
HashMap不是线程安全的。
十亿条淘宝购买记录,怎么获取出现最多的前十个
这是一道典型的有限内存的海量数据处理的题目。一般这类题目的解答无非是以下几种:
分治,hash映射,堆排序,双层桶划分,Bloom Filter,bitmap,数据库索引,mapreduce等。
具体情形都有很多不同的方案。这类题目可以到网上搜索一下,了解下套路,后面就基本都会了。
平时有没有用linux系统,怎么查看某个进程
ps aux|grep java 查看java进程ps aux 查看所有进程ps –ef|grep tomcat 查看所有有关tomcat的进程ps -ef|grep --color java 高亮要查询的关键字kill -9 19979 终止线程号位19979的进程