任务
- 运行examples下面的 springcloud服务
- 学习文档,结合springcloud插件,发起http请求soul网关,体验springcloud代理
spring cloud 插件初体验
soul-admin & soul-bootstrap
admin 打开对 springcloud 插件的支持。bootstrap 加入 springcloud 的 pom 依赖,重启网关。
1 | <dependency> |
soul-examples-springcloud
主要是 soul-springcloud 的 pom 依赖。
1 | <dependency> |
成功启动后,请求接口 http://localhost:9195/springcloud/order/findById,返回结果为:
1 | {"code":-109,"message":"springCloud serviceId does not exist or is configured incorrectly!","data":null} |
通过 SpringCloudPlugin 的 doExecute 的方法断点调试,发现大致的原因是 loadBalancer 选择 serviceId 时无法找到对应的服务实例。
1 | //selectorHandle.getServiceId() 为 springCloud-test |
猜测是由于没有使用注册中心,无法发现服务。启动注册中心 eureka,端口为1001。在网关和springcloud的示例工程中均加入 eureka 的配置项。然后重启网关和示例工程,发现注册中心已经发现服务。
1 | eureka: |

再次请求http://localhost:9195/springcloud/order/findById,返回结果为,大概意思是处理信号超时。
1 | {"code":500,"message":"Internal Server Error","data":"Did not observe any item or terminal signal within 3000ms in 'peekTerminal' (and no fallback has been configured)"} |
刚想检查下为什么超时时,再请求一次,发现可以成功调用。。。具体细节后面再深究。。。
