分布式系统架构
互联网企业的业务飞速发展,促使系统架构不断变化。总体来说,系统架构大致经历了单体应用架构—垂直应用架构—分布式架构—SOA架构—微服务架构的演变,很多互联网企业的系统架构已经向服务化网格(Service Mesh)演变。
单体应用架构:所有的模块写到一个Web项目中,再统一部署到一个Web服务器中。
分布式架构:将重复的代码抽象出来,形成统一的服务,供其他系统或者业务模块调用。
xxx-common: pojo,utils,config
xxx-system: pojo,dao,service
xxx-admin : controller
system 调用公共模块 common,控制模块 admin 调用业务模块 system。
简单举例。
创建项目
父级配置
<!--修改父级打包方式-->
<packaging>pom</packaging>
<!--子级都有谁-->
<modules><module>boot-admin</module><module>boot-common</module><module>boot-system</module>
</modules>
子级配置
<!--修改子级打包方式-->
<packaging>jar</packaging>
<!--引入父级-->
<parent><groupId>com.hz</groupId><artifactId>boot-parent</artifactId><version>0.0.1-SNAPSHOT</version>
</parent>
三者的依赖关系
<!-- boot-system -->
<dependencies><dependency><groupId>com.hz</groupId><artifactId>boot-common</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
</dependencies>
<!-- boot-admin -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.hz</groupId><artifactId>boot-system</artifactId><version>0.0.1-SNAPSHOT</version></dependency>
</dependencies>
<!-- boot-parent -->
<!-- 在 boot-parent 中引入需要的依赖 这样所有的子级都可以使用 -->
<dependencies><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>
boot-common
模块结构:公共实体类、工具类等
boot-system
模块结构:数据持久化、服务接口及其实现类等
boot-admin
模块结构:启动类、控制器、yml配置文件等
打开 Maven,点击父级 boot-parent
打包
去到该目录下
D:\idea_workspaces\boot-parent\boot-admin\target
打开终端,输入命令
>java -jar boot-admin-0.0.1-SNAPSHOT-smbms.jar
运行项目
成功运行后调用接口测试,成功即可。