1、问题背景
在使用spring cloud微服务开发的时候,我们经常的做法就是开发好了微服务,然后,通过网关的形式对外发布微服务,让外网的客户端进行微服务的调用。
2、问题描述
在配置微服务的网关的时候,通常使用的方式就是lb://微服务名称的方式,这样避免某台微服务宕机之后,启动不了的问题。如果自己测试也可以使用微服务物理地址的方式,就是微服务的直接URL。
在使用微服务名称的方式的时候,springcloud gateway 无法解析 lb://my_url这种模式,就是服务名中带下划线的方式。
3、问题分析
springcloud gateway的内部源代码认为下划线是一种分隔符,所以会报错。
4、问题解决
定义微服务名称的时候,避免使用下划线的方式,这个是初学者容易犯的错误,也是微服务的名称由多个单词构成的时候,使用下划线的方式进行分割。
解决方法:使用中划线分割,或者不带下划线的方式进行微服务名称命名。