SpringCloud学习心得—1.2—Eureka注册中心的密码认证、高可用的设置
SpringCloud学习心得—1.2—Eureka注册中心的密码认证、高可用的设置
这是相关代码 链接
Eureka开启密码配置
- 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency> - 向properties添加密码与用户名
spring.security.user.name=yinjihuan #用户名
spring.security.user.password=123456 #密码 - 增加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()是授权的两种方式。详细可以看这个 链接
- 其他客户端也需要添加认证的用户名与密码
eureka.client.serviceUrl.defaultZone=http://china:19492019@localhost:8761/eureka/
简单的集群搭建
原理:多台机器,每台机器部署一个Eureka并且向自己以外的所有机器注册。
- 创建项目eureka-server-cluster
- 增加application-master.properties:
server.port=8761 # 指向你的从节点的Eureka eureka.client.serviceUrl.defaultZone=http://用户名:密码@localhost:8762/eureka/- 增加application-master.properties:
server.port=8762 # 指向你的主节点的Eureka eureka.client.serviceUrl.defaultZone=http://用户名:密码 @localhost:8761/eureka/- 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 中,无论谁出现问题,应用都能继续使用存活的注册中心。
- 在客户端中增加如下配置
eureka.client.serviceUrl.defaultZone=http://zhangsan:123456@localhost:8761/eureka/,http://zhangsan:123456@localhost:8762/eureka/
自我保护模式与InstanceId的设置
- 关闭自我保护保护模式主要在一组客户端和 Eureka Server 之间存在网络分区场景时使用。一旦进入保护模式,Eureka Server 将会尝试保护其服务的注册表中的信息,不再删除服务注册表中的数据。当网络故障恢复后,该 Eureka Server 节点会自动退出保护模式。
配置开启、关闭可添加设置
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 中。我们可以通过增加一些配置让移除的速度更快一点,当然只在开发环境下使用,生产环境下不推荐使用。
- 在eureka-server中增加配置
# 关闭自我保护和清理间隔: eureka.server.enable-self-preservation=false # 默认 60000 毫秒 eureka.server.eviction-interval-timer-in-ms=5000 - 客户端服务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;">
SpringCloud学习心得—1.2—Eureka注册中心的密码认证、高可用的设置的更多相关文章
- SpringCloud学习笔记(1):Eureka注册中心
简介 Eureka是Netflix开源的基于rest的服务治理方案,分为Server端和Client端,Server端为注册中心,其他微服务通过Client端连接Server端进行服务的注册和发现. ...
- SpringCloud的入门学习之深入理解Eureka注册中心
1.Eureka 注册中心三种角色. 答:a.Eureka Server,注册中心,通过 Register.Get.Renew 等接口提供服务的注册和发现. b.Application Service ...
- SpringCloud学习心得—1.3—Eureka与REST API
SpringCloud学习心得—1.3—Eureka与REST API Eureka的REST API接口 API的基本访问 Eureka REST APIEureka 作为注册中心,其本质是存储 ...
- springCloud系列教程01:Eureka 注册中心集群搭建
springCloud系列教程包含如下内容: springCloud系列教程01:Eureka 注册中心集群搭建 springCloud系列教程02:ConfigServer 配置中心server搭建 ...
- Spring-cloud (一):Eureka注册中心搭建
前提 系统安装jdk1.8及以上,配置好maven的ide(这里用idea进行演示,maven版本3.5,配置阿里云源) 项目搭建 新建一个maven项目,创建最简单的那种就好,项目名这里为Eurek ...
- SpringCloud的服务注册中心(四)- 高可用服务注册中心的搭建
一.双 服务注册注册中心 1.服务注册中心的服务端 - EurekaServer 1.1.EurekaServer1 String.application.name=eureka-server ser ...
- 【Spring Cloud笔记】Eureka注册中心增加权限认证
在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...
- Eureka注册中心增加权限认证
在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...
- 搭建高可用的Eureka注册中心
搭建高可用的Eureka注册中心 一.搭建高可用的Eureka的作用 当服务器因种种原因导致Eureka注册中心(后面简称Eureka)服务当机(服务器跪了,异常关闭停止服务).这样就会影响到整个业务 ...
随机推荐
- 【SSH进阶之路】Spring的AOP逐层深入——AOP的基本原理(六)
经过我们对Spring的IOC不断的深入学习,Spring的面貌逐渐变得清晰,我们对Spring的了解也更加的深入.从这篇博文开始我们学习Spring的第二大核心内容:AOP. 什么是AOP AOP( ...
- 利用js来画图形(例如:条状图,圆饼图等)
背景:java开发的过程中,需要对数据进行可视化,这样方便客户理解此时的数据状态 语言:java,js,window7,echarts包文件 sample的例子下面的参照 https://www.ec ...
- php_MVC实现步骤二
2.match_split 显示逻辑相分离 将功能强制分成两个部分,显示html文件,和逻辑PHP文件: 要求浏览器请求负责功能的PHP逻辑文件: 该PHP逻辑文件,对需要的显示内容进行载入. 逻辑P ...
- 1.JVM前奏篇(看官网怎么说)
JVM(Java Virtual Machine) 前奏篇(看官网规范怎么说) 1.The relation of JDK/JRE/JVM 在下图中,我们所接触的,最熟悉,也是经常打交道的 最顶层 J ...
- mongdb基本使用
mongodb创建用户,设置密码 参考:https://www.jianshu.com/p/237a0c5ad9fa MongoDB内置的数据库角色有: 1. 数据库用户角色:read.readWri ...
- 5. RDD编程进阶
5.1 累加器 累加器用来对信息进行聚合,通常在向Spark传递函数时,比如使用map()函数或者用filter()传条件时,可以使用驱动器程序中定义的变量,但是集群中运行的每个任务都会得到这些变量的 ...
- quartz2.3.0(十二)通过RMI协议向Scheduler调度器远程添加job任务
此代码示例通过RMI协议向Scheduler调度器远程添加job任务. 代码文件包括:job任务类(SimpleJob.java).RMI服务端server类(RemoteServerExample. ...
- go 缓冲IO
package main import ( "bufio" "fmt" "os" "strings" ) func ma ...
- python之(TensorFlow)深度学习
一.深度学习(DL, Deep Learning)是机器学习(ML, Machine Learning)领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能(AI, Artifi ...
- devextreme组装数据导出excel
$.get("", function (grid_dataSource) { var grid_config = dxConfig.grid(grid_dataSource); g ...