![](https://img-blog.csdnimg.cn/20190918140158853.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
重学面试复习
文章平均质量分 78
重学面试复习
零2一
这个作者很懒,什么都没留下…
展开
-
重学| 面试复习(五)分布式问题
⽐如,可以为每台服务器计算三个虚拟节点,于是可以分别计算 “节点1的ip#1”、“节点1的ip#2”、“节点1的ip#3”、“节点2的ip#1”、“节点2的ip#2”、“节点2的ip#3”的哈希值,于是形成六个虚拟节点,当客户端被路由到虚拟节点的时候其实是被路由到该虚拟节点所对应的真实节点。最终一致性强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态,因此最终一致性的本质是需要系统保证数据能够达到一致,而不需要实时保证系统的数据的强一致性。原创 2020-09-26 09:31:11 · 347 阅读 · 2 评论 -
重学| 面试复习(七)Dubbo
2、DubboMonitor 将数据进行聚合后(默认聚合 1min 中的统计数据)暂存到ConcurrentMap statisticsMap,然后使用一个含有 3 个线程(线程名字:DubboMonitorSendTimer)的线程池每隔 1min 钟,调用 SimpleMonitorService 遍历发送 statisticsMap 中的统计数据,每发送完毕一个,就重置当前的 Statistics 的 AtomicReference。原创 2020-09-25 21:04:13 · 241 阅读 · 0 评论 -
重学| 面试复习(九)MySql
若开启用查询缓存,这时会将SQL 语句和结果完整地保存到查询缓存(Cache&Buffer)中,以后若有相同的 SQL 语句执行则直接返回结果。使用一致性Hash算法能够很大程度的避免这个问题,所以很多中间件的集群分片都会采用一致性Hash算法,一致性Hash在增加或者删除节点的时候,受到影响的数据是比较有限的,只会影响到Hash环相邻的节点,不会发生大规模的数据迁移。如:合理的表结构,合理的索引,合理的查询语录(可通过分析慢查询日志找出可优化的,再通过explain去测试语句,找出可优化的点进行优化)。原创 2020-09-25 20:52:18 · 187 阅读 · 0 评论 -
重学| 面试复习(三)Spring Boot
查看spring-boot-starter-web依赖文件源码,可以发现,spring-boot-starter-web依赖启动器的主要作用是提供Web开发场景所需的底层所有依赖,正是如此,在pom.xml中引入spring-boot-starter-web依赖启动器时,就可以实现Web场景开发,而不需要额外导入Tomcat服务器以及其他Web依赖文件等。当然,这些引入的依赖文件的版本号还是由spring-boot-starter-parent父依赖进行的统一管理。这一一步主要是在容器刷新之前的准备动作。原创 2020-09-25 09:05:00 · 289 阅读 · 0 评论 -
重学| 面试复习(四)Tomcat & Nginx
这样,当我们开发一个新的HTTP模块时,不但可以使用诸如HTTP核心模块、events模块、log模块等不同层次或者不同类型的模块,还可以原封不动地复用大量已有的HTTP过滤器模块。可以认为整个Tomcat就是⼀个Catalina实例,Tomcat 启动的时候会初始化这个实例,Catalina实例通过加载server.xml完成其他实例的创建,创建并管理⼀个Server,Server创建并管理多个服务,每个服务⼜可以有多个Connector和⼀个Container。这是Nginx可以快速发展的强大动力。原创 2020-09-25 08:58:06 · 550 阅读 · 1 评论 -
重学lagou | 面试复习(二)Spring
具体过程:判断循环所有的BeanPostProcessor,然后我们aop什么时候被加进来的后置处理器?FactoryBean是spring当中的一个特殊的bean,它是一个接口,实现了FactoryBean的bean能够再创建一个bean,如果你的类实现了FactoryBean,那么spring容器当中存在两个对象,一个是通过getObject()返回的对象,还有一个为当前对象,getObject得到的对象存的是当前类@Component(“名字”)指定的名字,当前对象是“&”+指定的名字。原创 2020-09-25 08:55:15 · 158 阅读 · 0 评论 -
重学| 面试复习(一)Mybatis
它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()方法发现a.getB()是null值,那么就会单独发送事先保存好的查询关联B对象的sql,把B查询上来,然后调用a.setB(b),于是a的对象b属性就有值了,接着完成a.getB().getName()方法的调用。aop(面向切面)我们的插件可以以为四大对象创建出代理对象,代理对象就可以拦截到四大对象的每一个执行;返回target包装后的对象。原创 2020-09-24 15:20:35 · 275 阅读 · 0 评论 -
重学| 面试复习(目录)开篇
开篇 重学| 面试复习(一)Mybatis 重学| 面试复习(二)Spring 重学| 面试复习(三)Spring Boot 重学| 面试复习(四)Tomca t& Nginx 重学| 面试复习(五)分布式问题 重学| 面试复习(六)Zookeeper 重学| 面试复习(七)Dubbo 重学| 面试复习(八)Spring Cloud 重学| 面试复习(九)MySql 重学| 面试复习(十)FastDFS 重学| 面试复习(十一)Redis 重学| 面试复习(十二)Rabbit MQ & K原创 2020-09-24 15:17:54 · 338 阅读 · 0 评论