微服务项目的整合和测试

学习目标

1)掌握微服务项目的整合使用
2)掌握Swarrger-UI的简单使用

9.1.1 微服务项目结构预览

本项目模拟的是一个简单的商城管理系统,其项目整体结构如图所示。
p 1.1

  • microservice-eureka-server: 用于服务注册发现
  • microservice-gateway-zuul: 用于API网关
  • microservice-orderservice: 用于订单管理服务
  • microservice-userservice: 用于用户管理服务

9.1.2 微服务项目功能介绍

1、microservice-eureka-server(Eureka注册中心)
其对应的配置文件application.yml的具体内容如图所示。
p 1.2
2、microservice-gateway-zuul(Zuul API网关)
其对应的配置文件application.yml的具体内容如图所示。
p 1.3
3、microservice-orderservice(订单管理微服务)
其对应的配置文件application.yml的具体内容如图所示。
p 1.4
该项目对应的控制类OrderController的具体内容如图所示。
p 1.5
4、microservice-userservice(用户管理微服务)
其对应的配置文件application.yml的具体内容如图所示。
p 1.6
该项目对应的控制类UserController的具体内容如图所示。
p1.7

9.1.3 微服务项目的启动和测试

由于microservice-orderservice(订单微服务)和microservice-userservice(用户微服务)都涉及了MySQL数据库的连接使用,所以在启动这两个微服务项目之前必须先创建好对应的数据库和表,并初始化相关数据。
SQL脚本内容如图。
p 1.8
以上创建了一个名为microservice_mallmanagement的数据库,同时在该数据库中分别创建tb_order表和tb_user表,并插入了一些初始化数据。
完成全部子项目的启动并运行成功后,通过地址 http://localhost:8761/, 即可访问Eureka服务注册中心,效果如图。
p1.9
启动成功后,即可对系统的功能进行测试,具体执行步骤如下。
(1)测试接口方法。分别通过microservice-orderservice和microservice-userservice两个为服务项目的地址来访问各自暴露的API接口方法(分别为 http://localhost:7900/order/findOrders/1http://localhost:8030/user/findOrders/shitou )进行测试。
出错!!
p 1.10
百度了一下发现是在mysql8之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password。
修改了加密规则。

p 1.11
再运行orderservice启动类,又出现错误。
p 1.12
继续百度,发现是我的mysql版本是8,mysql-connector-java版本是5.1.43,导致连接不成功。重新下载mysql5版本。
再次建好对应的数据库和表,并初始化相关数据。
p 1.13
p 1.14
再运行orderservice启动类、userservice启动类。
p 1.15
p 1.16
再次测试接口方法。分别通过microservice-orderservice和microservice-userservice两个为服务项目的地址来访问各自暴露的API接口方法(分别为 http://localhost:7900/order/findOrders/1http://localhost:8030/user/findOrders/shitou )进行测试。
p 1.17
p 1.18

(2)测试API网关服务。针对上面的microservice-orderservice和microservice-userservice两个微服务项目,可以通过Zuul组件提供的API网关进行对应的接口代理测试(代理访问地址分别为
http://localhost:8050/order-service/order/findOrders/1
和http://localhost:8050/user-service/user/findOrders/shitou)。
p 1.19
p 1.20
商城微服务项目测试总结:使用Spring Cloud的Zuul组件实现API网关服务时,只需要访问microservice-gateway-zuul的服务地址并连接其他微服务映射的路径即可访问其他注册到Eureka注册中心的服务。

接口可视工具-Swagger-UI

1、Swagger-UI使用方法
(1)下载Swagger-UI项目
先从GitHub.上拉取Swagger-UI项目代码到本地,具体地址:
https://github.com/swagger-apilswagger-uigit
(2)引入Swagger-UI
找到本地下载好的Swagger-UI项目,进入项目并找到dist目录,将整个dist目录复制到需要使用Swagger-UIT具项目的resources目录下。
p 2.1
(3)加入Swagger-UI依赖
在microservice-userservice项目的pom文件中加入Swagger的依赖。
p 2.2
(4)编写配置类
在项目中创建一个Swagger-UI的配置类SwaggerConfiguration,并在该类中修改一些默认显示的API相关信息,其中最主要的是接口路径。
p 2.3
2、Swagger-UI使用测试
分别完成微服务项目microservice userservice和microserviceorderservice与Swagger-UI接口文档工具的整合后,只需要重新启动项目即可查看整合效果。
(1)整合测试
重新启动所有整合了Swagger-UI接口文档工具的微服务项目,通过对应“服务地址IP+端口+/swagger-ui.html”请求路径即可进入测试页面。
p 2.4
(2)接口测试
以用户管理接口文档为例,先单击user-controller面板,会展示出接口中的所有方法(项目只有一一个GET方法),再单击某个具体的方法会展示出详细信息。
p 2.5
p 2.6
根据标注,在参数输入框中填写username的参数值shitou (之前MySQL数据库初始化时插入的数据),然后单击“Try it out!”按钮即可进行测试。
p 2.7