微服务诞生的背景
普通写的程序大而全,但是一旦其中一项出现问题,整个服务将会瘫痪。微服务架构就是将一个大系统拆分成若干个小系统,其中一个服务瘫痪后,其他业务照样可以运行。
例子:一个大型火车站可以通往各地,当火车站出现断网等意外时,整个火车站就将瘫痪。微服务就是建造多个火车站分别负责东西南北各个位置,一个方向瘫痪时,其他火车站依旧可以完成客运任务。
微服务架构解决方案
大厂使用自研的微服务框架,防止使用开源的框架,框架不维护后扩展困难
pp中小公司常用SpringCloud、Netflix,SpringCloudAlibaba..
微服务架构下Maven聚合项目的创建方式
聚合项目:类似子父级,一个大的项目,中间包括多个服务,大项目的pom统一依赖版本,定义公共依赖,统一编译和运行环境
POM文件解释
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>包名,组id</groupId>
<artifactId>项目名称</artifactId>
父类的pack属性都是pom
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
每次创建子工程,都会自动添加一个module元素
<modules>
<module>子工程名称</module>
<module>子工程名称</module>
<module>...</module>
</modules>
<!--统一依赖版本(子工程都会参考这里的版本定义),
dependencyManagement 元素只负责定义依赖版本-->
<dependencyManagement>
<dependencies>
<!--定义Spring Boot依赖的版本-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--定义Spring Cloud依赖的版本-->
<dependency>
<groupId>org.springframew