在我们的开发工作中,我们经常会用到微服务。好多小伙伴说,面试的时候也经常会问微服务的一系列知识点。今天,我们主要总结下微服务面试常见的问题。
1:什么是微服务?
以前进行项目开发的时候,所有的模块都在一个项目中,这样就导致我们某一个模块有问题,可能会导致整个项目出现问题。感觉耦合性比较高。那么微服务现在很火,好多公司也在向微服务转型。比如一个商城系统,可以拆分为很多小的模块,可以拆分为客户管理、商品管理、订单管理等,这样我们每个人可以负责一个小模块,每个模块之间互相调用,项目版本迭代比较快,配置减少,可以快速交付等。
2:springboot中的核心注解是哪个?
核心注解是@SpringBootApplication。@SpringBootApplication是springboot中最核心的注解,写在启动类的上面。它是@Configuration、@EnableAutoConfiguration和@ComponentScan的组合注解。@Configuration指示一个类声明一个或者多个@Bean 声明的方法并且由Spring容器管理,@EnableAutoConfiguration将SpringBoot中所有符合条件的@Configuration配置都加载到当前SpringBoot创建并使用的IoC容器,@ComponentScan扫描定义路径下的bean。
3:springboot中配置文件有几种方式?
两种,application.properties和application.yml。
application.properties配置文件格式如下:
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
application.yml配置文件格式如下:
spering:
datasoure:
url: jdbc:mysql://localhost:3306/test
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
特别注意:yml文件写配置参数的时候,冒号后面一定要加空格,否则识别不了。
4:什么是springboot?
springboot是快速构建项目的一种框架,原来构建一个项目,比如ssm项目,我们要配置好多东西,增加好多配置文件,配置比较复杂,搭建一个ssm框架,输出一个hello world,需要做一大堆的配置。springboot可以极大的简化配置,约定大于配置。springboot可以快速的整合其他框架,这样就可以提高我们的开发效率。springboot内置tomcat,简化maven配置,自动配置spring,我们需要搭建一个springboot的demo,输出hello,非常的方便快捷,简化了一大堆的配置。如果有小伙伴想看springboot入门demo,可以看看我前面写的这篇文章,springboot+mysql+mybatis,快速入门,文章链接:https://blog.csdn.net/qq_36833673/article/details/106745478。
5:什么是springcloud?
springcloud是在springboot的基础上构建的,是构建分布式项目的一个大的工具集。springcloud中主要包括服务的注册与发现、服务之间的调用、断路器、负载均衡、分布式消息传递、配置中心、数据监控等。
6:springboot和springcloud之间的区别?
1)springboot简化了配置,内置了tomcat,可以快速的构建微服务项目,专注于单个微服务项目的开发;
2)springcloud是一个工具集,springcloud中主要包括服务的注册与发现、服务之间的调用、断路器、负载均衡、分布式消息传递、配置中心、数据监控等。springcloud中包含了springboot。
7:微服务模块之间的调用方式?
常见的调用方式有Feign、http等。使用Feign,可以简化代码的书写,其封装了一系列的调用逻辑,我们只需要加入注解使用即可,方便我们的开发,提高开发效率。
8:运行springboot项目有哪几种方式?
1)直接运行main方法;
2)打包部署到服务器上运行;
3)使用maven插件运行。
9:读取配置文件值的方式?
通过@Value注解,通过@ConfigurationProperties注解
10:微服务项目有哪些优缺点?
优点:项目模块小,可以快速开发。一个服务模块是一个特定的功能,代码量小,功能专一,代码可读性好,服务之间是松耦合的。单个模块,方便修改和维护。
缺点:项目模块多,出现问题难以定位。项目模块多,管理起来比较复杂,增加了运维的压力。版本模块之间部署互相依赖问题。
总结:以上总结了微服务面试常见的知识点。
知识就是要不断的学习,不断的复习,才会记忆的更加的深刻。加油,美好的风景一直在路上!