开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 网关联合测试 】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/758/detail/13320
MyCat - 网关联合测试
内容介绍:
一、本节内容
二、网关请求客户端微服务
一、本节内容
上节用 Postman 将订单开发的接口及商品开发的接口测试完成,在通过 Postman 测试该块内容时是直接请求的微服务,并没有经过网关。之前网关已经搭建完成,接下来通过网关请求客户端微服务。
二、网关请求客户端微服务
1.先启动 Eureka 注册中心,然后启动后端的微服务、Goods 以及网关工程。
还要启动 OrderApplication:
Eureka 启动后刷新 Eureka 注册中心:
然后看到 Eureka 注册中心的实例注册情况
启动 Getway 网关:
全部启动后刷新 Eureka 注册中心:
网关就是给后端微服务提供统一的入口,也就是说前端请求到达后不直接请求微服务,所有都直接请求服务网关,由服务网关将该请求路由到后端微服务。
2.接下来进行测试直接请求网关:
请求服务网关需要将端口该为 8001
因为 Getway 服务网关端口为 8001:
访问 8001 的是访问网关,任何将请求路由到商品微服务?
需要加前缀:goods
该含义为如果加了 goods 前缀,会去和下图所示的路由规则相匹配
匹配后会去找到应该微服务 goods,并且将该请求转发给 goods。在转发请求给微服务时,由于每个参数(StripPrefix)等于 1,它会在转发时将第一个前缀去除,根据后面的 /sku/id 可以找到 goods 微服务中的 SkuController
3.执行:
如果想要查询订单信息
同样请求 8001 并加 /order
与路由规则 /order 匹配:
以 /order 在前面进行请求时,要去请求一个 order 订单的微服务:
并且在路由到该微服务的过程中将 /order 删除
设置空的 JSON 格式的数据(表示请求所有订单信息)
执行成功:
上诉就是基于网关的请求,请求网关后将请求路由给后端微服务。
结合前端进行测试:
4.对于我们当前来说,不会去实现前端,前端的工程已经提供:
v_manage_web 模拟了一个前端(通过微服务模拟前端),将其导入到工程中
拷贝后导入:
5. 只需要将引导类启动就可以访问到静态资源,默认访问的是 index.html
在访问时可以看到一个菜单:
点击商品管理时请求了页面
找到 spu-datalist.html
在其中发送了请求,请求 8001(网关)
如果查看订单,则请求为 order-datalist.html
在 order-datalist.html 中,依然请求的是服务网关,通过服务网关查询订单的数据。
需要关心的是,当点击商品列表是能否将信息查询出来,前端代码已经写好,我们主要通过前端测试后端接口,和后端接口进行对接,能正常看到商品数据和订单数据。