4 Star 0 Fork 0

梦残 / 学习笔记

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
固守大数据面试.txt 3.17 KB
一键复制 编辑 原始数据 按行查看 历史
majie 提交于 2018-01-15 09:10 . xx
一面:
hashmap数据结构
-- 链表数组,数组里面放的Entry,同时也是头结点,hash冲突的时候放入同一个位置,变成链表结构 [萌新]
支持并发的hash是什么?为什么可以支持并发?底层实现是怎么样的?
-- 1.ConcurrentHashMap 2.ConcurrentSkipListMap 3.Hashtable [萌新]
线程池的七个参数分别是什么意思,然后继续追问
-- coreSize maxSize keepaliveTime TimeUnit BlockingQueue ThreadFactory Reject [萌新]
你打印日志的时候是每个方法都写log还是怎么弄得(aop)
-- AOP [萌新]
aop怎么底层怎么实现的
-- 动态代理 [萌新]
aop的动态代理和cglib的区别,底层都是怎么实现的
-- 区别: 一个是接口代理 一个是类代理 [萌新]
反射
锁你知道多少,我回答synchronized 和ReentrantLock,以及Semarphore,说到Semarphore直接打断为我Semarphore的用途
-- 锁有: 1: 独占锁(排它锁) 2: 共享锁 3:读写锁 4: 自旋锁 [萌新]
悲观锁和乐观锁
-- 悲观锁是以为资源被占用,所以使用的时候先锁住在修改 --乐观锁参考CAS [萌新]
按钮重发提交怎么实现的(后台做幂等性验证)
幂等性怎么做的?反正这个上面问了很多
https原理是什么?
一个请求进入Controller以后,再进入service,如何在service里面确定是那个Controller进来的请求?
ThreadLocal底层实现.
二面
keepalive+nginx实现原理是什么
nginx是单点的,只有借助keepalive实现集群化.后台一个脚本一直去检查再用的nginx是否挂了,
如果挂了就切换到另外一个热备的nginx上.然后再去启动挂掉的nginx.通过keep实现一个vip,外部是访问的vip,不会感知nginx的切换.
lvs是什么
虚拟服务器 [萌新: linux virtual system]
redis集群实现的几种方式
哨兵和cluster
哨兵的缺点
有延迟,从机越多,延迟多严重
如果有三个节点,一个挂了救会损失三分之一的数据.即使做了aof和rdb,也会有少点的数据丢失,不能做到百分比不丢失数据
然后我还说到的脑裂什么的.提到脑裂的时候他就感兴趣了,就问我脑裂,还问我是怎么知道这个名词的
脑裂的原理
由于网络波动,slave会ping不通master.为了防止这种,就要在配置文件配置fast-fail机制,10秒ping不同就重新选举新的master.然后画图解释了一波
之后他又画图给我重新解释了一下我说的一些错误的地方
然后还涉及到redis的选举机制之类的
forum和majority
redis速度为什么快
不知道,然后他给我解释说是由于底层数据结构是个结构块..有点记不清楚了
分布式锁的几种实现方式
redis,zk
redis怎么实现分布式锁的
使用了redis的nx命令,巴拉巴拉....
然后举了个例子,问我并发情况下锁不会被释放会怎么样.
dubbo服务往zk上注册的时候zk做了什么
先说zk的结构.然后说注册时候zk产生了一个子节点,命令是生产者的ip和名字巴拉巴拉
raft算法是什么
没听过.然后我说了paxos.
他说这个算法就是那个算法的简化版,然后给我解释.
Java
1
https://gitee.com/mengcan/study-note.git
git@gitee.com:mengcan/study-note.git
mengcan
study-note
学习笔记
master

搜索帮助