一、微服务背景简介
单体应用:一个maven工程里包含所有内容
缺点:系统庞大时,不容易维护。
微服务: 微服务架构(MSA)的基础是将单个应用程序开发为一组小型独立服务,这些独立服务在自己的进程中运行,独立开发和部署。
这些服务使用轻量级 API 通过明确定义的接口进行通信;
程序中的微服务,就是将各个业务系统的共性再进行抽取,做成独立的服务,如图所示:
二、SpringCloud Alibaba微服务解决方案
1.spring Alibaba微服务架构图解:
2.服务关系及调用:
3.常见问题分析
为什么需要微服务?(对系统分而治,解决因并发访问过大带来的系统复杂性(例如:业务,开发,测试,升级,可靠性等)
微服务设计的特点?(单一职责,独立进程,开发测试效率高,可靠性高,升级难度小,但会带来一定的维护成本)
微服务解决方案有哪些?(大厂自研,中小企业采用开源Spring Cloud Alibaba,Spring Cloud Netfix等 )
微服务设计中需要哪些关键组件(服务的注册,发现,配置,限流降级,访问入口管理,分布式事务管理等)
创建聚合工程的目的?(实现工程之间资源的的共享,简化工程管理)
如何修改聚合工程中项目的编译和运行版本?(pom.xml:build->plugins->plugin->maven-compiler-plugin)
Maven父工程中如何统一定义JDK编译和运行版本?(配置maven编译插件:maven-compiler-plugin)
maven工程中build元素的作用?(定义项目的编译,打包方式)
maven父工程的packaging元素内的值是什么?(父工程默认打包方式为pom方式)
maven父工程中dependencyManagement元素的作用是什么?(项目依赖的版本,当前工程或子工程不需要再指定版本)
Maven工程pom.xml文件有删除线怎么解决?(修改idea中maven的配置)
@Autowired注解描述属性时,系统底层执行DI的过程是怎样?
/**
* @Autowired描述属性时,用于告诉spring按照指定规则为此注解描述的属性注入一个值,
指定规则——会优先按属性类型查找对象的对象,假如找不到直接抛出异常,找到一个则直接注入,
* 找到多个:会按照属性名与spring容器中的bean名字进行比对,有相同则直接注入,
* 没有相同的则抛出异常。假如我们希望注入指定的名字的bean,还可以在@Autowired注解
* 的基础上再添加一个注解@Qualifier,用于指定要注入的bean。
*/