回忆一下,在上一篇文章中,我们使用eureka作为注册中心,将producer注册到eureka,并且在consumer中通过eureka发现producer服务进行调用,让我们来分析一下,这样是否已经足够完美,还有没有什么问题?
1.首先,eureka没有任何安全验证,任何应用都可以访问,这显然不安全,因此eureka也需要使用spring-security配置用户密码验证.
2.其次,所有服务注册和发现都需要通过eureka,而我们的eureka目前是单机运行,这就有可能导致单点问题,一旦eureka挂了,整个微服务就无法正常使用了,因此,我们的eureka需要集群运行.
eureka-server新增spring-security认证
首先,在eureka-server项目新增spring-security的maven依赖:
其次,修改配置文件:
此时还需要修改producer配置文件:
以及consumer项目的配置文件:
此时,如果是1.x的版本就可以了,但是2.x版本还不行.还得在eureka-server项目新增一个配置类:
然后启动eureka-server以及producer和consumer查看:
说明eureka-server新增安全验证成功.接下来,我们需要将eureka-server进行集群部署,简单起见,我们直接使用IDEA用eureka-server修改端口启动多个进行部署:
然后修改端口号和hostname,分别启动:
可以看到,集群已经启动成功,接下来修改producer和consumer:
再访问一下consumer:
再关闭eureka集群中的一或者两个服务,我关闭了server1和server2,访问consumer试一试:
可以看到consumer仍然可以访问,因此eureka-server使用集群部署保证了eureka-server的高可用.
自此,我们的eureka注册中心真正完整了,接下来,我们会讲spring-cloud中的负载均衡ribbon,敬请期待下一篇文章!
本文由博客一文多发平台 OpenWrite 发布!