第二轮面试题
1.SSM的开发步骤是什么?
2.设计一个权限模块?
3.什么是docker?
4.什么是dockfile?
5.什么是docker-compose?
6.什么是Portainer?
7.在公司里使用的docker的版本是什么?
8.镜像和容器的关系?
9.分布式锁中的基于redis的setnx的原理以及set和setnx的区别是什么?
10.什么是springcloud,springcloud中的组件有哪些?分别描述下它的原理?
11.什么是jmeter?
一、SSM的开发步骤是什么?
"二八"
web.xml
1.前端控制器DispatcherServlet
2.过滤器CharacterEncodingFilter
applicationContext.xml
1.扫描包 <context:component-scan base-package="cn"/>
2.mvc驱动 <mvc:annotation-driven/>
3.事务驱动 <tx:annotation-driven transaction-manager="txManager"/>
4.配置数据源
5.SqlSessionFactoryBean
6.配置事务
7.数据映射器
8.视图解析器
二、设计一个权限模块?
权限模块是数据库的安保系统,决定谁可以使用,谁拥有权限,有user、role、permussion表,通过user-role、role-permussion关联表(码表)进行关联,给角色分配权限,角色发放权限给用户。
三、什么是docker?
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
四、什么是dockfile?
Dockerfile是一个包含用于组合映像的命令的文本文档,可以使用在命令行中调用任何命令。
五、什么是docker-compose?
可以管理多个 Docker 容器组成一个应用,定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。
六、什么是Portainer?
Portainer(基于Go) 是一个轻量级的管理界面,可让您轻松管理 Docker 主机 或 Swarm 集群。
七、在公司里使用的docker的版本是什么?
18.09.7
八、镜像和容器的关系?
容器是可写的,镜像是可读的。容器是镜像的实例,镜像是容器的静态备份。
九、分布式锁中的基于redis的setnx的原理以及set和setnx的区别是什么?
setnx当且仅当 key 不存在。若给定的 key 已经存在,则 setnx不做任何动作。setnx 是『set if not exists』(如果不存在,则 set)的简写,setnx 具有原子性。
getset先 get 旧值,后set 新值,并返回 key 的旧值(old value),具有原子性。当 key 存在但不是字符串类型时,返回一个错误;当key 不存在的时候,返回nil ,在Java里就是 null。
区别是setnx是如果不存在则set,具有原子性。
十、什么是springcloud,springcloud中的组件有哪些?分别描述下它的原理?
Spring Cloud是一系列框架的有序集合。
ribbon、feign、hstrix 、eureka、zuul。
Ribbon实现的关键点是为ribbon定制的RestTemplate,ribbon利用了RestTemplate的拦截器机制,在拦截器中实现ribbon的负载均衡。负载均衡的基本实现就是利用applicationName从服务注册中心获取可用的服务地址列表,然后通过一定算法负载,决定使用哪一个服务地址来进行http调用。
Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,而不用像Java中通过封装HTTP请求报文的方式直接调用。Feign通过处理注解,将请求模板化,当实际调用的时候,传入参数,根据参数再应用到请求上,进而转化成真正的请求,这种请求相对而言比较直观。
Hstrix在分布式架构中,当某个单元发生故障,及时切断联系,防止线程因调用故障服务而长时间等待而不被释放。Hystrix实现的功能有:服务降级、服务熔断、线程和信号隔离、请求缓存、请求合并、以及服务监控等功能。
Eureka注册中心,服务提供方启动后将注册到注册中心,提供IP, 名字,什么服务等信息,服务调用方作为客户端注册到注册中心后,拉取注册中心的服务列表,在通过负载均衡调用对应的服务提供方。
Zuul是Netflix开源的微服务网关,它可以和Eureka,consul,Ribbon,Hystrix等组件配合使用。
十一、什么是jmeter?
Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。发送请求到服务端,获取目标服务的统计信息,生成不同格式的报告。
原文地址:https://www.cnblogs.com/lingboweifu/p/11797763.html