微服务项目的启动和测试
商城管理系统的启动非常简单,只要运行各自的启动类即可。唯一需要注意的是,项目中的microservice-gateway-zuul 、microservice-orderservice和microservice-userservice都注册到了microservice-eureka-server项目的服务注册中心上,所以必须先启动microservice-eureka-server项目,运行成功后才可启动其他三个子项目。
由于microservice-orderservice(订单微服务)和microservice-userservice(用户微服务)都涉及到了MySQL数据库的连接使用,所以在启动这两个微服务项目之前必须先创建好对应的数据库和表,并初始化相关数据。
读者可以通过MySQL客户端连接工具(如Navicat)执行SQL脚本文件来初始化数据库和表,SQL脚本的内容如文件1所示。
文件1 microservice_mallmanagement.sql
1 CREATE DATABASE microservice_mallmanagement;
2 USE microservice_mallmanagement;
3 DROP TABLE IF EXISTS `tb_order`;
4 CREATE TABLE `tb_order` (
5 `id` int(11) NOT NULL AUTO_INCREMENT,
6 `createtime` datetime DEFAULT NULL,
7 `number` varchar(255) DEFAULT NULL,
8 `userid` int(11) DEFAULT NULL,
9 PRIMARY KEY (`id`)
10 ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=UTF8;
11 INSERT INTO `tb_order` VALUES ('1', '2017-10-09 10:15:44',
12 '201709181459001', '1');
13 INSERT INTO `tb_order` VALUES ('2', '2017-10-24 18:22:12',
14 '201709181459008', '1');
15 DROP TABLE IF EXISTS `tb_user`;
16 CREATE TABLE `tb_user` (
17 `id` int(11) NOT NULL AUTO_INCREMENT,
18 `address` varchar(255) DEFAULT NULL,
19 `username` varchar(255) DEFAULT NULL,
20 PRIMARY KEY (`id`)
21 ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=UTF8;
22 INSERT INTO `tb_user` VALUES ('1', 'beijing', 'shitou');
在文件1中,创建了一个名为microservice_mallmanagement的数据库,同时在该数据库中分别创建tb_order和tb_user表,并插入了一些初始化数据。
完成全部子项目的启动并运行成功后,通过地址http://localhost:8761/
,即可访问Eureka服务注册中心,效果如图1所示。
图1 Eureka注册中心
从图1可以看出,所有服务均已正常启动,并且其他的三个子项目都已正确注册到了Eureka注册中心。
启动成功后,即可对系统的功能进行测试,具体执行步骤如下。
(1)测试接口方法。分别通过microservice-orderservice和microservice-userservice两个微服务项目的地址来访问各自暴露的API接口方法(分别为http://localhost:7900/order/findOrders/1
和http://localhost:8030/user/findOrders/shitou
)进行测试,效果分别如图2和3所示。
图2 订单管理微服务接口测试结果
图3 用户管理微服务接口测试结果
以上两种微服务的接口调用方法是通过调用各自的服务地址和对应的API接口方法进行的测试。
(2)测试API网关服务。针对上面的microservice-orderservice和microservice-userservice两个微服务项目,可以通过Zuul组件提供的API网关进行对应的接口代理测试(代理访问地址分别为http://localhost:8050/order-service/order/findOrders/1
和http://localhost:8050/user-service/user/findOrders/shitou
),效果分别如图4和5所示。
图4 订单管理微服务接口代理测试结果
图5 用户管理微服务接口代理测试结果
从图4和5的访问地址和显示结果可以看出,使用Spring Cloud的Zuul组件实现API网关服务时,只需要访问microservice-gateway-zuul的服务地址并连接其他微服务映射的路径即可访问其他注册到Eureka注册中心的服务。
至此,商城管理系统的整合和测试就已经讲解完成。如果读者想要查看整个项目的源码,可以通过GitHub进行下载查看,具体地址为https://github.com/shi469391tou/microservice-mallmanagement.git
。