1.1 架构预览

最后更新于:2022-04-02 06:56:32

## 架构预览 在这一章节中,我们需要搭建如下所示的系统架构: ![A01.png](https://s2.ax1x.com/2019/08/31/mxKKHI.png) 上面的架构中,主要包含了以下节点: 1. FEBS-Register:微服务注册中心,用于统一控制各个微服务实例的注册与发现; 2. FEBS-Gateway:微服务网关,统一处理外部请求,是客户端和众多微服务连接的桥梁; 3. FEBS-Auth:微服务认证服务器,用于令牌(Token)生成和令牌校验,是整个权限系统的核心所在; 4. FEBS-Server-System:微服务提供者(资源服务器)A,对外提供系统模块的CRUD服务; 5. FEBS-Server-Test:微服务提供者(资源服务器)B。 本质上FEBS-Server-Test和FEBS-Server-System没有区别,构建FEBS-Server-Test的目的主要有如下三点: 1. 演示一台认证服务器和多台资源服务器之间如何交互; 2. 微服务间如何通过Feign Client来互相访问受保护的资源; 3. 演示如何往FEBS Cloud微服务权限系统中接入自己的微服务模块; 由于模块较多,所以开始之前我们先对各个微服务的端口做出如下约定: 微服务 | 端口号 ---|--- FEBS-Register | 8001 FEBS-Auth | 8101 FEBS-Server-System | 8201 FEBS-Server-Test | 8202 FEBS-Gateway | 8301 下面我们正式开始框架的搭建。 ## Maven父模块搭建 首先我们使用IDEA创建一个名称为FEBS-Cloud的 Maven模块,该模块为整个工程的服务模块,用于聚合各个微服务子系统。 在D盘根目录创建一个名称为febs的文件夹,然后打开IDEA,点击Create New Project新建一个Maven项目,Project SDK选择JDK 1.8: ![1.png](https://s2.ax1x.com/2019/08/05/e2DY0P.png) 点击Next,如下图所示填写GroupId和ArtifactId: ![2.png](https://s2.ax1x.com/2019/08/05/e2DJmt.png) 点击Next,按照下图所示填写相关内容,路径选择D盘根目录下的febs: ![3.png](https://s2.ax1x.com/2019/08/05/e2D36A.png) 点击Finish完成创建。创建好后,项目如下所示: ![4.png](https://s2.ax1x.com/2019/08/05/e2D8OI.png) 因为febs-cloud模块是项目的父模块,仅用于聚合子模块,所以我们可以把src目录下的内容全部删了,保留pom.xml和febs-cloud.iml,然后修改pom.xml,引入Spring Boot和Spring Cloud: ```xml 4.0.0 cc.mrbird febs-cloud 1.0-SNAPSHOT pom FEBS-Cloud FEBS-Cloud:Spring Cloud,Spring Security OAuth2 微服务权限管理系统 org.springframework.boot spring-boot-starter-parent 2.1.6.RELEASE Greenwich.SR1 org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import ``` 上面的pom配置中,我们指定了packaging为pom,表示这是一个纯聚合模块,无需打包为jar或者war;name指定为FEBS-Cloud;引入了Spring Boot 2.1.6.RELEASE和Spring Cloud Greenwich.SR1。 至此,父模块搭建完毕,接下来开始搭建通用模块。 ## 通用模块搭建 通用模块主要用于定义一些各个微服务通用的实体类,工具类或者第三方依赖等。 点击File -> New -> Module...,新建一个Maven模块,Module SDK选择JDK 1.8: ![5.png](https://s2.ax1x.com/2019/08/05/e2DlSH.png) 点击Next: ![6.png](https://s2.ax1x.com/2019/08/05/e2DtTf.png) 父模块选择我们上面创建好的febs-cloud,ArtifactId填febs-common,然后点击Next: ![7.png](https://s2.ax1x.com/2019/08/05/e2DUk8.png) 填写内容如上图所示(注意febs-common和febs-cloud都位于febs目录下,它们在目录结构上是平级的关系),点击Finish完成创建。创建好后,项目结构如下所示: [![8.png](https://s2.ax1x.com/2019/08/05/e2DatS.png)](https://imgchr.com/i/e2DatS) 这时候我们查看febs-cloud的pom文件,会发现它新增了如下内容: ```xml ../febs-common ``` 因为我们刚刚在创建febs-common模块的时候选择febs-cloud作为父模块。 我们往febs-common模块的pom里添加一些后续要用到的依赖: ```xml febs-cloud cc.mrbird 1.0-SNAPSHOT ../febs-cloud/pom.xml 4.0.0 febs-common FEBS-Common FEBS-Common通用模块 org.projectlombok lombok com.alibaba fastjson 1.2.51 org.apache.commons commons-lang3 org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-oauth2 org.springframework.cloud spring-cloud-starter-security ``` lombok的使用需要安装相关插件(lombok可以通过注解自动生成get,set等方法,不懂的同学可以自行百度lombok),双击Shift,然后输入plugins: ![9.png](https://s2.ax1x.com/2019/08/05/e2Ddfg.png) 选择第一个,然后按Enter键,输入lombok,安装列表中的第一个,然后重启IDEA即可: ![10.png](https://s2.ax1x.com/2019/08/05/e2D0pQ.png) 至此,通用模块也搭建完毕了,接下来开始搭建微服务注册中心。 > 本节源码:QQ群519057656,群文件 → 教程源码 → 1.1-源码
';