Soul网关第2天:转发http请求

1,415 阅读2分钟

一、运行 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 依旧可以成功。