zoukankan      html  css  js  c++  java
  • SpringCloud学习心得—1.2—Eureka注册中心的密码认证、高可用的设置

    SpringCloud学习心得—1.2—Eureka注册中心的密码认证、高可用的设置

    这是相关代码 链接

    Eureka开启密码配置

    1. 添加依赖
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-security</artifactId>
      </dependency>
    2. 向properties添加密码与用户名
      spring.security.user.name=yinjihuan #用户名
      spring.security.user.password=123456 #密码
    3. 增加Security配置类:
      @Configuration
      @EnableWebSecurity
      public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
          @Override
          protected void configure(HttpSecurity http) throws Exception {
              // 关闭csrf
              http.csrf().disable();
              // 支持httpBasic
              http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
          }
      }
      • csrf:Cross-site request forgery跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。为了防止跨站提交攻击,通常会配置csrf。post请求不带token就拒绝
      • http.authorizeRequests()其中这里的意思是指通过authorizeRequests()方法来开始请求权限配置;接着的.anyRequest().authenticated()是对http所有的请求必须通过授权认证才可以访问;而and()是返回一个securityBuilder对象,formLogin()和httpBasic()是授权的两种方式。详细可以看这个 链接
    4. 其他客户端也需要添加认证的用户名与密码
      eureka.client.serviceUrl.defaultZone=http://china:19492019@localhost:8761/eureka/

    简单的集群搭建

    原理:多台机器,每台机器部署一个Eureka并且向自己以外的所有机器注册。

    1. 创建项目eureka-server-cluster
      1. 增加application-master.properties:
      server.port=8761
      
      # 指向你的从节点的Eureka
      
      eureka.client.serviceUrl.defaultZone=http://用户名:密码@localhost:8762/eureka/
      1. 增加application-master.properties:
      server.port=8762
      
      # 指向你的主节点的Eureka
      
      eureka.client.serviceUrl.defaultZone=http://用户名:密码 @localhost:8761/eureka/
      1. application.properties 中添加下面的内容:
      spring.application.name=eureka-server-cluster
      
      # 由于该应用为注册中心, 所以设置为false, 代表不向注册中心注册自己
      
      eureka.client.register-with-eureka=false
      
      # 由于注册中心的职责就是维护服务实例, 并不需要检索服务, 所以也设置为 false
      
      eureka.client.fetch-registry=false
      
      spring.security.user.name=zhangsan
      spring.security.user.password=123456
      
      
      # 指定不同的环境
      
      spring.profiles.active=master

      在 A 机器上默认用 master 启动,然后在 B 机器上加上 --spring.profiles.active=slaveone 启动即可。这样就将 master 注册到了 slaveone 中,将 slaveone 注册到了 master 中,无论谁出现问题,应用都能继续使用存活的注册中心。

    2. 在客户端中增加如下配置
    eureka.client.serviceUrl.defaultZone=http://zhangsan:123456@localhost:8761/eureka/,http://zhangsan:123456@localhost:8762/eureka/

    自我保护模式与InstanceId的设置

    • 关闭自我保护保护模式主要在一组客户端和 Eureka Server 之间存在网络分区场景时使用。一旦进入保护模式,Eureka Server 将会尝试保护其服务的注册表中的信息,不再删除服务注册表中的数据。当网络故障恢复后,该 Eureka Server 节点会自动退出保护模式。
      Eureka自我保护
      配置开启、关闭可添加设置
    eureka.server.enableSelfPreservation=false
    • 自定义eureka的instanceId
      • 客户端注册时,有如下默认格式
      ${spring.cloud.client.hostname}:${spring.application.name}:${spring.application. instance_id:${server.port}}

      主机名:服务名称:服务端口格式

      • 很多时候想显示ip地址,可变更为如下配置
      eureka.instance.instance-id=${spring.application.name}:${spring.cloud.client.ip-address}:${server.port}
      • 点击instanceId进行跳转,显示的名称是ip格式,但是跳转的链接还是主机名,可以如下设置
      eureka.instance.preferIpAddress=true

      • 自定义跳转地址
      eureka.instance.status-page-url=c.biancheng.net

    快速移除失效服务

    在实际开发过程中,我们可能会不停地重启服务,由于 Eureka 有自己的保护机制,故节点下线后,服务信息还会一直存在于 Eureka 中。我们可以通过增加一些配置让移除的速度更快一点,当然只在开发环境下使用,生产环境下不推荐使用。

    1. 在eureka-server中增加配置
      # 关闭自我保护和清理间隔:
      
      eureka.server.enable-self-preservation=false
      
      # 默认 60000 毫秒
      
      eureka.server.eviction-interval-timer-in-ms=5000
    2. 客户端服务eureka-service中增加配置
      # 开启健康检查
      
      eureka.client.healthcheck.enabled=true
      
      # 表示 Eureka Client 发送心跳给 server 端的频率,默认 30 秒
      
      eureka.instance.lease-renewal-interval-in-seconds=5
      
      # 表示 Eureka Server 至上一次收到 client 的心跳之后,等待下一次心跳的超时时间,在这个时间内若没收到下一次心跳,则移除该 Instance默认 90 秒,现在变成五秒就看一次
      
      eureka.instance.lease-expiration-duration-in-seconds=5

      并引用依赖

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

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    四则运算网页版
    第六周工作日志
    课堂作业数组最大和
    第五周总结
    四则运算三结对开发
    学习进度第四周
    个人模块记录表
    学习进度表第三周
    四则运算第二篇
    保序回归问题
  • 原文地址:https://www.cnblogs.com/pipicai96/p/885b2e717763c07375449e08494323c5.html
Copyright © 2011-2022 走看看