今天在搭建注册中心的时候,遇到了几个坑,再次记录一下:
1、springboot 和springcloud版本冲突。
因为我springboot用的是2.3.4。然后springcloud一直无法匹配,最终。我将springboot版本切到了
<version>2.1.3.RELEASE</version>
然后再pom添加
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
指定spring-cloud对应的版本。
2、因为考虑安全性,在注册中心加入了安全校验。这时候你需要加入配置文件,当我加入security的时候,就一直各种报错,Cannot execute request on any known server
@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// http.csrf().disable(); //关闭csrf
http.csrf().ignoringAntMatchers("/eureka/**");
super.configure(http);//开启认证
}
}
2、配置文件修改,将 register-with-eureka 设为false
eureka.client.registerWithEureka=false eureka.client.fetchRegistry=false
3、service-url.defaultZon的配置
因为上面你会配置:server.context-path= /eureka
那么eureka.client.serviceUrl.defaultZone=http://localhost:9999/eureka/eureka/
第一个eureka是项目名,配置中配置了server.context-path= /eureka
一定要遵守这个规则,如果 你没有配置server.context-path,那么 eureka.client.serviceUrl.defaultZone=http://localhost:9999/eureka 访问地址为:http://localhost:1111/
4、我遇到的问题,也是自己没注意的问题
service-url.defaultZone: http://admin:fxm-pactera@127.0.0.1:1111/eureka
这个地方一定要和配置文件保持一致,设置如上图,我就是密码没有写一样的导致一直报错。
security:
user:
name: admin
password: fxm-pactera
综合以上几种方法,基本上是可以解决eureka配置过程中遇到的一些问题了。。。。。