eureka不能正常注册或者注册失败的原因
使用eureka搭建服务注册发现中心时要注意一点,也是初次使用容易踩中的坑,即应用上下文的设置。
背景如下:在配置号eureka服务注册中心和相关微服务之后,且注册中心正常启动的情况下,相关的微服务一直不能成功注册进eureka服务注册中心。找了很久的资料,都在说springboot2.X默认开起了security模块的CSRF认证功能导致的,只要加上spring.security.user=XXX和spring.security.name=XXX或者禁用掉security模块的CSRF验证就可以正常注册了。可是尝试了很多次且也跟中源代码进行调试,发现在发现微服务客户端时会访问http://IP:port/eureka/apps这个网址,这是因为我设置了eureka.client. fetchRegistry=true。后来将其设置为false之后还是不能注册成功。因此我将上述网址输入浏览器访问,发现根本访问不了。但命名http://localhost:8761/eureka是能正常访问的,且微服务端defaultzone也没有写错。在后续漫长的调查过程中才发现,eureka服务注册中心端的配置文件中不能设置上下文访问路径,保持默认的 /,启用security账户密码,且关闭csrf验证,且微服务端及注册中心端的defaultZone配置成http://XXX:XXX@ip:port/eureka/就可正常注册了。