架构面试题

面试准备:

问题:Spring 和 SringBoot 有什么区别

答:

1.Spring Boot可以建立独立的Spring应用程序;
2.内嵌了如Tomcat,Jetty和Undertow这样的容器,也就是说可以直接跑起来,用不着再做部署工作了。
3.无需再像Spring那样搞一堆繁琐的xml文件的配置;
4.可以自动配置Spring;
5.提供了一些现有的功能,如量度工具,表单数据验证以及一些外部配置这样的一些第三方功能;
6.提供的POM可以简化Maven的配置;

问题:说说你认识的锁有哪几种,分别有什么优点和缺点?

答:

可以查看详细资料:https://blog.csdn.net/u010251897/article/details/80840027

Synchronized,它就是一个:非公平,悲观,独享,互斥,可重入的重量级锁

ReentrantLock,它是一个:默认非公平但可实现公平的,悲观,独享,互斥,可重入,重量级锁。

ReentrantReadWriteLocK,它是一个,默认非公平但可实现公平的,悲观,写独享,读共享,读写,可重入,重量级锁。


问题:集群和分布式的区别?

答:

可以查看详细资料:https://www.cnblogs.com/xzwblog/p/7255364.html

集群是个物理形态,分布式是个工作方式。

分布式是相对中心化而来,强调的是任务在多个物理隔离的节点上进行。

分布式:一个业务分拆多个子业务,部署在不同的服务器上
集群:同一个业务,部署在多个服务器上

集群是解决高可用的,而分布式是解决高性能、高并发的。


问题:zookeeper 的做分布式锁和Redis 做分布式锁有什么区别或哪个更好一些?

答:

可以查看详细资料:https://blog.csdn.net/qq_19568599/article/details/52612421

 Redis分布式锁,必须使用者自己间隔时间轮询去尝试加锁,当锁被释放后,存在多线程去争抢锁,并且可能每次间隔时间去尝试锁的时候,都不成功,对性能浪费很大。

Zookeeper分布锁,首先创建加锁标志文件,如果需要等待其他锁,则添加监听后等待通知或者超时,当有锁释放,无须争抢,按照节点顺序,依次通知使用者。


问题:在多服务中,如何保存session的唯一?

答:

可以查看详细资料:https://blog.csdn.net/lamp_yang_3533/article/details/51984201

将本该保存再Web服务器磁盘上的session数据保存到cookie中

将本该保存再Web服务器磁盘上的session数据保存到Mysql数据库中

将本该保存再Web服务器磁盘上的session数据保存到内存数据库(memcache或redis)中


问题:说说MySQL数据库锁有哪几种,区别是什么

答:

可以查看详细资料:https://www.cnblogs.com/paul8339/p/9936005.html

表级锁、行级锁
问题:说说事务的隔离级别

答:

可以查看详细资料:https://www.cnblogs.com/protected/p/6526857.html


问题:能否举一个例子,或者描述一个业务场景类似于可重入锁的


问题:redis为什么设计成单线程

答:这个问题还是看官网解释。

你可能感兴趣的:(个人总结,Java,相关知识)