irpas技术客

Spring Cloud之Eureka集群与安全认证_风儿甚是喧嚣

网络投稿 7499

文章目录 前言一、Eureka集群1、修改配置文件为application-replica1.properties2、新增配置文件application-replica2.properties3、分别使用两个配置文件启动同一eureka-server服务4、修改Eureka-client,连接到集群 二、Eureka注册中心添加认证1、在pom文件中添加依赖2、添加Java配置WebSecurityConfig3、eureka-client注册到有登录认证的注册中心 总结

前言

单节点eureka服务注册中心一旦宕机,将导致所有服务将无法使用,通过集群可以保证服务的高可用。本篇内容为对eureka服务注册与发现中心进行集群与安全认证学习。搭建一个双节点的注册中心集群以及配置安全认证。

注: 该部分内容上篇内容的基础上,已经成功搭建单节点eureka-server服务注册中心。

一、Eureka集群 1、修改配置文件为application-replica1.properties #服务端口号 server.port=1001 #应用名称 spring.application.name=eureka-server #实例名称 eureka.instance.hostname=server1 #client.register-with-eureka为是否将应用注册到eureka,默认为true,单点server节点指定为false eureka.client.register-with-eureka=true #client.fetch-registry为是否从注册中心拉取已注册信息,默认为true,单点server节点指定为false eureka.client.fetch-registry=true #client.service-url.defaultZone指定注册中心地址 eureka.client.service-url.defaultZone=http://localhost:1010/eureka #server端,关闭注册中心自我保护机制 eureka.server..enable-self-preservation=false #注册中心清理间隔,单位为毫秒 enruka.server.evication-interval-timer-in-ms=10000 #安全认证用户名及密码 spring.security.user.name=root spring.security.user.password=root 2、新增配置文件application-replica2.properties #服务端口号 server.port=1010 #应用名称 spring.application.name=eureka-server #实例名称 eureka.instance.hostname=server2 #client.register-with-eureka为是否将应用注册到eureka,默认为true,单点server节点指定为false eureka.client.register-with-eureka=true #client.fetch-registry为是否从注册中心拉取已注册信息,默认为true,单点server节点指定为false eureka.client.fetch-registry=true #client.service-url.defaultZone指定注册中心地址 eureka.client.service-url.defaultZone=http://localhost:1001/eureka #server端,关闭注册中心自我保护机制 eureka.server..enable-self-preservation=false #注册中心清理间隔,单位为毫秒 enruka.server.evication-interval-timer-in-ms=10000 #安全认证用户名及密码 spring.security.user.name=root spring.security.user.password=root 3、分别使用两个配置文件启动同一eureka-server服务

此时访问http://localhost:1001/,已经可以看到端口1010的服务已经被注册了 ,访问http://localhost:1010/则可以看到1001端口已经被注册。

4、修改Eureka-client,连接到集群

#端口号 server.port=2001 #应用名称 spring.application.name=eureka-introduce #实例ID eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port} #client.service-url.defaultZone指定注册中心地址 eureka.client.service-url.defaultZone=http://localhost:1001/eureka,http://localhost:1010/eureka #client端,开启健康检查(需要spring-boot-starter-actuator依赖) eureka.client.healthcheck.enabled=true #设置租期更新时间,默认30秒 eureka.instance.lease-renewal-interval-seconds=30 #设置租期到期时间,默认90秒 eureka.instance.lease-expiration-duration-in-seconds=90

二、Eureka注册中心添加认证 1、在pom文件中添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> 2、添加Java配置WebSecurityConfig

默认情况下添加SpringSecurity依赖的应用每个请求都需要添加CSRF token才能访问,Eureka客户端注册时并不会添加,所以需要配置/eureka/**路径不需要CSRF token。

package com.hjl.eureka_server.config; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; /** * TODO: * * @Version 1.0 * @Author HJL * @Date 2021/12/27 20:51 */ @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().ignoringAntMatchers("/eureka/**"); super.configure(http); } }

重新访问eureka服务;

3、eureka-client注册到有登录认证的注册中心

配置文件中需要修改注册中心地址格式

http://${username}:${password}@${hostname}:${port}/eureka/

Eureka的常用配置

eureka: client: #eureka客户端配置 register-with-eureka: true #是否将自己注册到eureka服务端上去 fetch-registry: true #是否获取eureka服务端上注册的服务列表 service-url: defaultZone: http://localhost:8001/eureka/ # 指定注册中心地址 enabled: true # 启用eureka客户端 registry-fetch-interval-seconds: 30 #定义去eureka服务端获取服务列表的时间间隔 instance: #eureka客户端实例配置 lease-renewal-interval-in-seconds: 30 #定义服务多久去注册中心续约 lease-expiration-duration-in-seconds: 90 #定义服务多久不去续约认为服务失效 metadata-map: zone: guangdong #所在区域 hostname: localhost #服务主机名称 prefer-ip-address: false #是否优先使用ip来作为主机名 server: #eureka服务端配置 enable-self-preservation: false #关闭eureka服务端的保护机制 总结

Eureka服务注册中心的集群,只需要开启eureka-server的自身服务注册功能,并填写集群其它的eureka服务地址,让注册中心服务间能相互发现即可,即具备eureka-client的能力。 eureka的安全认证可以通过spring security组件完成。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Spring