1、请简述一下SpringBoot?
- SpringBoot是一个Spring框架的启动器,使用SpringBoot可以快速地搭建一个基于Spring框架的Web项目。
- SpringBoot不是一个新的框架,而是Spring框架的延续和扩展。
- SpringBoot使用约定大于配置的原则,默认配置了Spring项目中的大部分配置,所以我们使用SpringBoot搭建Spring项目可以省去Spring框架的大部分配置,简化我们的开发。
2、请简述一下SpringCloud?
- SpringCloud并不是一个单独的框架,而是指一系列适用于解决分布式系统开发的框架集合。是一套用于治理微服务架构的解决方案。
- SpringCloud是基于SpringBoot,SpringCloud的每个微服务,都是使用SpringBoot来进行开发的。
3、什么是微服务?
- 微服务是指一个可以独立部署,水平拓展,独立访问的服务单元。
- 微服务单独运行在独立的进程中,并通过轻量级的通信机制进行通信,一般使用的是HTTP协议。
- 微服务强调技术独立,可以使用不同的语言编写或者不同的数据库存储,服务之间相互调用通过服务对外暴露的API接口进行,达到资源隔离的效果。
4、为什么要使用微服务,微服务有什么优势?
- 微服务可以独立开发,独立部署服务,更容易扩展,解决了一体化架构中服务难以扩展的问题。
- 微服务开发速度快,敏捷性高,维护单个微服务不影响整体系统。
- 微服务围绕业务功能创建、组织代码,代码可维护性高。
- 自由(在某种程度上)选择实施技术/语言,实现了技术独立。
5、请简述一下HTTP协议?
- HTPP是超文本传输协议,是当前互联网上使用最为广泛的一种传输协议,HTTP是网络传输的一种规范,是客户端和服务器端请求和响应的标准。
- HTTP的默认端口号是80,HTTPS的默认端口号是443,HTTPS的HTTP的安全版本,是完全的Web传输协议。
- HTTP是无连接的,即每次连接都只处理一次请求,响应完成之后断开连接,这种方式可以节省传输时间。
- HTTP是无状态的,即HTTP的每次请求都是独立的,不会记忆之前的请求或数据。
- HTTP可以传输任意类型的数据对象,常用的请求方法有GET、POST等。
- HTTP的请求由三部分构成,分别是:
- 请求行:请求方法,请求URL,HTTP协议版本
- 请求头:包含了一些请求客户端的信息,比如Cookie,Host,Accept等等
- 请求体:GET请求没有请求体,POST请求的请求体用于存放参数和请求数据
- HTTP的响应由三部分构成,分别是:
- 响应行:HTTP协议版本,状态码,状态代码的文本描述
- 响应头:包含服务器发送非客户端的信息,比如Content-Type,Server等等
- 响应正文:服务器响应给客户端的响应数据
6、请说一下HTTP协议的常见状态码及状态码的含义?
状态码 | 描述 |
---|---|
200 | 成功 |
301 | 永久重定向,请求资源被移动到新的URL |
302 | 临时重定向 |
400 | 错误的请求,请求格式错误 |
401 | 当前请求需要通过用户验证 |
403 | 拒绝服务 |
404 | 资源没有找到 |
408 | 请求超时 |
500 | 服务器内部错误 |
502 | 服务器网关错误 |
504 | 服务器响应超时 |
7、什么是分布式事务(简述)?
- 分布式事务是指在分布式环境下的不同节点上的一系列操作,这一系列操作要么全部执行成功,要么全部执行失败。
- 分布式事务是为了保证分布式环境下的数据一致性。
8、什么是分布式锁(简述)?
- 分布式锁就是指在分布式环境下,需要保证一个方法在同一时间只能被一个线程调用。
- 分布式锁是为了保证数据的一致性而进行的加锁操作。