02.给Eureka注册中心添加认证

给Eureka注册中心添加认证

创建一个eureka-security-server,在pom中添加依赖

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

添加application.yml配置文件

server:
  port: 7002
spring:
  application:
    name: eureka-security-server
  security: #配置SpringSecurity登录用户名和密码
    user:
      name: admin
      password: admin
eureka:
  instance:
    hostname: localhost
  client:
    fetch-registry: false
    register-with-eureka: false

添加配置WebSecurityConfig

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

/**
  * @author dnydys
  * @description  默认情况下添加SpringSecurity依赖的应用每个请求都需要添加CSRF token才能访问,
 * Eureka客户端注册时并不会添加,所以需要配置/eureka/**路径不需要CSRF token。
  * @updateTime 2022/1/23 19:16
*/
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().ignoringAntMatchers("/eureka/**");
        super.configure(http);
    }
}

eureka-client配置文件

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

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

按格式修改用户名和密码

server:
  port: 7100
spring:
  application:
    name: eureka-client
eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://admin:admin@localhost:7002/eureka/

启动服务端和两个客户端

访问:http://localhost:7002/
在这里插入图片描述

登录之后可以在注册中心界面看到eureka-client已经成功注册
在这里插入图片描述

Eureka的常用配置

eureka:
  client: #eureka客户端配置
    register-with-eureka: true #是否将自己注册到eureka服务端上去
    fetch-registry: true #是否获取eureka服务端上注册的服务列表
    service-url:
      defaultZone: http://localhost:7001/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: jiangsu #所在区域
    hostname: localhost #服务主机名称
    prefer-ip-address: false #是否优先使用ip来作为主机名
  server: #eureka服务端配置
    enable-self-preservation: false #关闭eureka服务端的保护机制

代码地址

github: https://github.com/DNYDYS/SpringClouddDemo.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 什么是Eureka? Eureka是Netflix开源的一款服务发现框架,用于实现微服务注册与发现。 2. Eureka的主要作用是什么? Eureka的主要作用是帮助微服务实现自动化的服务注册和发现。 3. Eureka的核心组件有哪些? Eureka的核心组件有Eureka Server、Eureka Client和Eureka注册中心。 4. Eureka Server和Eureka Client的区别是什么? Eureka Server是服务注册中心,负责管理所有的服务实例;Eureka Client是服务提供者和服务消费者,负责注册服务和发现服务。 5. Eureka服务注册过程是什么? 服务提供者向Eureka Server发送注册请求,Eureka Server将服务实例信息注册到自己的注册表中。 6. Eureka服务发现过程是什么? 服务消费者向Eureka Server发送发现请求,Eureka Server返回注册表中的服务实例列表,服务消费者从中选择一个服务实例进行调用。 7. Eureka的自我保护机制是什么? Eureka的自我保护机制是在一定时间内,如果Eureka Server没有收到服务实例的心跳,则认为该服务实例不可用,但不会立即从注册表中删除,以避免误判。 8. Eureka的心跳机制是什么? Eureka的心跳机制是服务实例每隔一段时间向Eureka Server发送一次心跳包,以表明自己的状态。 9. Eureka服务注册表如何保证高可用性? Eureka服务注册表可以使用多个Eureka Server实例组成集群,以提高可用性。 10. Eureka服务注册表如何保证一致性? Eureka服务注册表使用了CAP理论中的AP模型,保证了高可用性和分区容错性,但可能会存在数据不一致的情况。 11. Eureka服务注册表如何进行负载均衡? Eureka服务注册表中每个服务实例都有一个权重值,Eureka Client在进行服务发现时会根据权重值进行负载均衡。 12. Eureka服务注册表如何进行动态扩容? 当Eureka Server的负载达到一定阈值时,可以通过增加Eureka Server实例的方式进行动态扩容。 13. Eureka服务注册表如何进行动态缩容? 当Eureka Server的负载下降到一定阈值时,可以通过减少Eureka Server实例的方式进行动态缩容。 14. Eureka服务注册表如何进行数据备份? 可以通过将Eureka Server的注册表数据备份到其他存储介质中,如MySQL数据库等。 15. Eureka服务注册表如何进行数据恢复? 可以通过将备份的数据导入到Eureka Server的注册表中进行数据恢复。 16. Eureka服务注册表如何进行故障转移? 当Eureka Server实例发生故障时,可以通过其他Eureka Server实例接管其服务注册表来进行故障转移。 17. Eureka服务注册表如何进行数据同步? Eureka服务注册表使用了Netflix的Delta算法进行数据同步,该算法能够有效地减少网络带宽的使用。 18. Eureka服务注册表如何进行数据压缩? Eureka服务注册表使用了GZIP算法进行数据压缩,以减少网络带宽的使用。 19. Eureka服务注册表如何进行安全认证? 可以通过HTTPS协议和基于用户名密码的认证方式来保证Eureka Server和Eureka Client之间的通信安全。 20. Eureka服务注册表如何进行权限控制? 可以通过ACL(Access Control List)机制来对Eureka Server和Eureka Client的访问进行权限控制。 21. Eureka服务注册表如何进行监控和统计? 可以通过Eureka的REST API和Netflix的Hystrix Dashboard来监控和统计Eureka Server和Eureka Client的运行情况。 22. Eureka服务注册表如何进行自定义配置? 可以通过在配置文件中添加spring.cloud.netflix.eureka.*前缀的配置项来进行自定义配置。 23. Eureka服务注册表如何进行多环境配置? 可以通过在配置文件中添加spring.profiles.active=dev/prod等标识来进行多环境配置。 24. Eureka服务注册表如何进行集成测试? 可以通过使用Spring Cloud的@SpringBootTest注解和EurekaTestRestTemplateCustomizer类来进行集成测试。 25. Eureka服务注册表如何进行容器化部署? 可以通过使用Docker等容器化技术来进行Eureka Server和Eureka Client的容器化部署。 26. Eureka服务注册表如何进行跨平台部署? 可以通过使用Kubernetes等容器编排技术来进行Eureka Server和Eureka Client的跨平台部署。 27. Eureka服务注册表如何进行版本控制? 可以通过使用Git等版本控制工具来进行Eureka Server和Eureka Client的版本控制。 28. Eureka服务注册表如何进行自动化部署? 可以通过使用Jenkins等自动化部署工具来实现Eureka Server和Eureka Client的自动化部署。 29. Eureka服务注册表如何进行监控告警? 可以通过使用Prometheus等监控告警工具来实现Eureka Server和Eureka Client的监控告警。 30. Eureka服务注册表如何进行性能优化? 可以通过优化Eureka Server和Eureka Client的配置、调整心跳间隔和超时时间、增加节点数等方式来进行性能优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值