概述
今天尝试了一下spring cloud,在配置eureka服务端的时候一切正常,但在启动eureka客户端时,idea报了com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server的错误。根据这个英文意思应该是无法执行请求到任何服务器,我先检查了配置内容,也没发现什么问题。根据网上搜索到的结果分为3类
1.服务端的配置有问题,需要在配置文件中将自身注册到eureka服务中关闭,因为本身就是注册中心
eureka:
instance:
#注册中心地址
hostname: 127.0.0.1
###客户端调用地址
client:
serviceUrl:
defaultZone: http://127.0.0.1:8888/eureka/
###是否将自己注册到Eureka服务中,因为该应用本身就是注册中心,不需要再注册自己(集群的时候为true)
registerWithEureka: false
###是否从Eureka中获取注册信息,因为自己为注册中心,不会在该应用中的检索服务信息
fetchRegistry: false
2.服务端安装了spring security或是eureka自带了安全验证的功能,导致客户端进行注册,可以选择这个功能关闭,
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
super.configure(http);
}
}
除了上面这段代码应该还需要在application.properties或者application.yml中进行一些配置,这个问题我没遇到过,不过多赘述。
3.采用驼峰命名配置eureka,不要使用idea自动补齐的方式进行配置,这也是我遇到的问题。
下面是我原来的配置
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.default-zone=http://127.0.0.1:8888/eureka
这种配置方式就会导致我的客户端无法进行注册,需要将register-with-eureka这种命名的改成驼峰命名方式。
改成下面这种命名方式后我的代码就可以顺利执行了。ps:这也忒搞人了吧!
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://127.0.0.1:8888/eureka
至于properties转成yml后对运行有没有影响我就不知道了。
参考文章:https://blog.csdn.net/hanchao5272/article/details/80464087
最后
以上就是热情火车为你收集整理的Eureka 注册服务踩坑记录(原因:没有驼峰命名 )的全部内容,希望文章能够帮你解决Eureka 注册服务踩坑记录(原因:没有驼峰命名 )所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复