一、运行 Soul 中的 http 服务例子
1、简介
上一讲启动了 Soul 网关的后台管理系统和网关服务,这一讲我们运行 soul-example 模块中的 http 服务,体验 Soul 网关对 http 请求的代理。
-
soul-admin:网关管理后台 -
soul-bootstrap:网关服务启动 -
soul-example:示例代码
2、IDEA 配置 soul-example
IDEA 打开的是 soul 项目的 pom 文件,是不包含 soul-example module 的,我们需要手动让 IDEA 加载一下 soul-example module。
需要打开 Project Structure -> Modules -> Import Module 导入 soul-example
3、运行 http 服务
启动服务后,来看一下 http 服务的配置文件
两大块信息
- http服务地址和端口
- soul信息:
soul-admin地址、要注册的信息(端口、接口路径、服务名称),soul.full=false 干什么的还不知道
4、网关初体验
网关上一讲起来了,http 服务例子也起来了,可以试一下网关的转发 http 请求了。 postman走起来 GET http://localhost:9195/http/order/findById?id=3 ,结果时而成功时而报500错误,两种情况如图
- 500异常
- 正常
查看网关服务日志发现异常和正常转发的 http 服务地址不同
在查看后台管理系统 http 服务有存储了两个地址
猜测问题原因
http 服务启动时向
soul-admin注册自己的IP,因为笔记本使用的路由器分配的IP不固定,之前启动过 http 服务注册了旧的IP地址。而soul-admin并没有根据 http 服务下线删掉不存在的配置,这不科学,应该会有服务心跳之类的检测,主动下掉已下线的服务。留下问题!!!随着以后的学习应该会明白原因,自己哪里配置的不对。
解决办法
手动在
soul-admin中删掉已下线的服务地址,不再出现上述问题。
5、 总结
http 服务接口通过 @SoulSpringMvcClient 注解像 soul-admin 注册接口路由,http 服务应该没有主动删掉选择器规则的方法,后续学习再去了解。其实也可以不用 @SoulSpringMvcClient 注解,通过 soul-admin控制台,手动配置选择器规则(路由转发)。
删掉所有选择器规则,手动添加一条 /http/**
GET http://localhost:9195/http/order/findById?id=3 依旧可以成功。