eureka配置_F版本SpringCloud 5—Eureka集群和自我保护机制

7de82af0ff0585414344a12af5be8d37.png
源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials

前言

上篇文章中,通过代码搭建了Eureka注册中心和客户端,是Eureka的简单应用,在本文中将会讲解更多关于Eureka服务端的应用以及原理。

Eureka 自我保护机制

进入自我保护机制的标志【重点】

在使用Eureka的过程中,有时候会在Eureka服务端的页面上看到如下的内容:

3718b1bae7dceffa2ac3331dea3d353c.png

在监控页面上会看到一行红字儿,这些红字儿什么意思呢?代表着Eureka注册中心进入了自我保护机制。

什么是自我保护机制【重点】

默认情况下,如果Eureka Server在一定时间内没有接受到服务实例的心跳,Eureka将会注销该实例(默认90秒).但是当网络分区发生故障时,微服务客户端和Eureka Server 无法正常通信。以上行为可能变得特别危险了,因为微服务本身是健康的,此时不能注销该服务实例。

Eureka通过自我保护机制来解决这个问题,当Eureka Server在短时间丢失过多的服务实例(可能发生了网络分区的故障),那么Eureka Server进入自我保护模式,一旦进入此模式,Eureka Server将会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不再注销任何的服务实例),当网络故障恢复后,Eureka Server会自动退出自我保护模式。

综上,自我保护模式是一种应对网络故障的安全保护措施,它的架构哲学是宁可同时保留所有的微服务,也不盲目注销任何健康的微服务,使用自我保护模式可以让Eureka,更加健壮,稳定。

一句话:大面积出现客户端失联的时候,Eureka 注册中心进入自我保护模式,不注销任何实例

自我保护机制的配置

在Eureka Server中配置关闭自我保护机制

#关闭自我保护机制  默认开启
eureka.server.enable-self-preservation=false

如果想及时剔除失效的eureka服务除了关闭自我保护机制外,可以调低eureka的心跳值

eureka-server服务端
配置文件中我们添加如下配置#关闭保护机制,以确保注册中心将不可用的实例正确剔除
eureka.server.enable-self-preservation=false
#(代表是5秒,单位是毫秒,清理失效服务的间隔 )
eureka.server.eviction-interval-timer-in-ms=5000客户端
配置文件中我们添加如下配置# 心跳检测检测与续约时间
# 测试时将值设置设置小些,保证服务关闭后注册中心能及时踢出服务
# 配置说明
#  lease-renewal-interval-in-seconds 每间隔10s,向服务端发送一次心跳,证明自己依然”存活“
#  lease-expiration-duration-in-seconds  告诉服务端,如果我20s之内没有给你发心跳,就代表我“死”了,将我踢出掉。
eureka.instance.lease-renewal-interval-in-seconds=10
eureka.instance.lease-expiration-duration-in-seconds=20

注册中心高可用「注册中心集群」

注册中心集群 防止单点故障

Eureka可以通过运行多个实例并互相注册实现高可用部署,Eureka Server实例会彼此同步信息。

创建并配置Eureka集群

Tips:代码在前上篇教程的基础上开发,源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials

1.创建第二个Eureka服务端 eureka-server-8800

3cc0ca1bb1085fece9e0ea200092daa2.png

2.修改pom文件

40628082d6f0518a852ccf090026faf6.png

3.创建并修改启动类

package com.lby;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;/*** @author luxiaoyang* @create 2020-03-30-20:36*/
@EnableEurekaServer
@SpringBootApplication
public class EurekaServer8800 {public static void main(String[] args) {SpringApplication.run(EurekaServer8800.class,args);}
}

4.写配置文件

e03c85da08b4bf8d146925b0117809b1.png

5.修改注册中心eureka-server-8801的配置文件

注册中心之间的基本逻辑是:互相注册

be0d63095b56079c002fba4a5f340bd4.png

此时我们就拥有了一个Eureka注册中心的集群

6.修改所有客户端的配置,客户端需要向 注册中心集群注册 所以需要配置所有注册中心的地址

aeba2f21200ccfe8deb6ea4cd6f740e7.png

演示注册中心集群的效果

1.启动所有的注册中心和客户端

2.查看Eureka注册中心管理页面

查看注册中心 8800 的管理页面,可以看到客户端可以正常注册

9175e874529fa0e6b83be2ce10e072cd.png

查看注册中心 8801 的管理页面,可以看到客户端也可以正常注册

5855eaf904bced9d1cbe74581aa71ab0.png

3.关闭一个注册中心8800,注册中心8801不受任何影响,整个微服务的集群也不受任何影响,客户端可以正常注册

总结

以上就是Eureka注册中心高可用和自我保护机制的相关内容。

源码地址:https://gitee.com/bingqilinpeishenme/Java-Tutorials

恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。

496157862e4d26af065525ade5188013.png

要掌握SpringCloud更多的用法,请持续关注本系列教程。

求关注,求点赞,求转发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows共享内存

在windows编程中避免不了使用共享内存,因为他是进程间通信、文件读取最简单的方式,有书上还说其他进程间通讯机制如管、油槽、WM_COPYDATA底层也是用的共享内存机制。关于使用方法还是请参考MSDN。 最近听说使用共享内存不安全,可能会被其他进…

Chrome指令/追踪Http请求相关

2019独角兽企业重金招聘Python工程师标准>>> Chrome HTTP抓包,在地址栏输入 chrome://net-internals/#requests转载于:https://my.oschina.net/u/2292141/blog/895603

离散卷积与自相关

本文章转载自:http://www.cnblogs.com/einyboy/archive/2012/12/30/2839633.html 一、 定义 离散信号f(n),g(n)的定义如下: N-----为信号f(n)的长度 s(n)----为卷积结果序列,长度为len(f(n))len(g(n))-1 例: f(n) [1 2 3]; g(n) [2 3 1]; …

PHP文件操作类

<?php /*************************************************************************************** 文件名&#xff1a;File.cls.php 文件简介&#xff1a;类clsFile的定义&#xff0c;对文件操作的封装 版本&#xff1a;2.0 最后修改日期&#xff1a;2011-8-23 *******…

excel打开后灰色不显示内容_Excel二维表转换,一分钟就够

点击蓝字关注我们44个Excel 使用技巧基本方法作为职场人&#xff0c;加班累如狗。如何更轻松的工作并获得喜人的报酬便是咱们职场人一直追求的“生活哲理”&#xff0c;说到Excel,对于办公室群体而言实在是太常见不过了&#xff0c;不管做什么&#xff0c;咱们都会跟它打交道&a…

利用PHP SOAP实现web service

一 什么是SOAP&#xff1f;可以做什么&#xff1f; SOAP 指简单对象访问协议&#xff0c;它是一种基于XML的消息通讯格式&#xff0c;用于网络上&#xff0c;不同平台&#xff0c;不同语言的应用程序间的通讯。可自定义&#xff0c;易于扩展。一条 SOAP 消息就是一个普通的 XML…

UVA350-水题

UVA350-水题 #include<iostream>using namespace std;int main() {int c 0;int Z, L, I, M;while (cin >> Z >> I >> M >> L){c;if(Z L && L I && I M && M 0){return 0;}int i 1;int K, P;I I % M;Z Z % M;K …

卷积的循环矩阵求解方法

通常我们求解一维卷积或者二维卷积都是采用模板平移的方法&#xff0c;今天我们介绍一种新的求解方法&#xff0c;可以一次性求出所有的结果。 一维卷积 卷积定义 对于两个长度分别为m和n的序列x(i)和g(i)有&#xff0c; h(i)x(i)∗g(i)∑jx(j)g(i−j)h(i)=x(i)*g(i)=\sum_…

Windows 10 开发日记(五)-- 当Binding遇到异步 -- 解决方案

前文再续&#xff0c;上一章提出了问题&#xff0c;本章提出了三种解决方案&#xff1a; 解决方案一&#xff1a;手动进行异步转换,核心思想:将binding做的事情放入CodeBehind FilterItemControl.XAML: <Grid><Image x:Name"FilterImage" Stretch"Unif…

fseek

int fseek( FILE *stream, long offset, int origin );第一个参数stream为文件指针第二个参数offset为偏移量&#xff0c;正数表示正向偏移&#xff0c;负数表示负向偏移第三个参数origin设定从文件的哪里开始偏移,可能取值为&#xff1a;SEEK_CUR、 SEEK_END 或 SEEK_SETSEEK_…

static_cast, dynamic_cast, const_cast探讨【转】

首先回顾一下C类型转换&#xff1a; C类型转换分为&#xff1a;隐式类型转换和显式类型转换 第1部分. 隐式类型转换又称为“标准转换”&#xff0c;包括以下几种情况&#xff1a;1) 算术转换(Arithmetic conversion) : 在混合类型的算术表达式中, 最宽的数据类型成为目标转换类…

RANSAC算法注记

今天学习了一下RANSAC随机样本一致性算法&#xff0c;其在图像融合、特征点匹配方面有很强大的应用。网上已经有很多人写了关于这方面的文档&#xff0c;就不再造轮子了。特此罗列出来&#xff0c;以供后续参考。 我的数学之美&#xff08;一&#xff09;——RANSAC算法详解 …

python字典格式_python – 格式self,这是一个字典

在这种情况下如何使格式(自我)工作&#xff1f;class Commit:number Nonesha Nonemessage Noneidentity Nonedef __init__(self, raw, number):r raw.commits[number]self.number numberself.sha r[sha]self.message r[message]self.identity raw.identities[r[identi…

委托的BeginInvoke和EndInvoke

刚刚搞明白了C#的异步调用&#xff0c;写下来&#xff0c;方便后续调用。 异步主要是解决UI假死的问题&#xff0c;而开辟出一个新的线程&#xff0c;处理大数据。 1.既然是委托的调用&#xff0c;那么先定义个委托&#xff1a; public delegate bool CheckUpdateFile(); 2.定义…

PMP 第七章 项目成本管理

估算成本 制定预算 控制成本 1.成本管理计划的内容和目的是什么? 包括对成本进行估算 预算和控制的各过程&#xff0c;从而确保项目在批准的预算内完工。 2.直接成本、间接成本、可变成本、固定成本、质量成本的内容分别是什么?成本估算的工具有哪些? 成本估算工具 1…

您的请求参数与订单信息不一致_[淘客订单检测]淘宝客订单检测接口,淘客订单查询API...

功能1.输入交易的订单编号&#xff0c;即可查询该订单是否为淘宝客订单。有意向请联系卫星weixiaot168。2.查询结果 0:不是淘宝客订单&#xff1b;1:是。3.根据淘宝官方的后台数据&#xff0c;进行检测&#xff0c;数据真实且有效。4.有效防止佣金损失&#xff0c;降低商家补单…

DebugView输出调试信息

在写windows程序时&#xff0c;需要输出一些调试信息&#xff0c;这里介绍一种极其方便的方法。即使用OutputDebugString 在Debug模式下输出调试信息&#xff0c;在Release模式下不输出。 我们可以在VS的集成平台上输出调试信息&#xff0c;也可以使用DebugView来查看调试信息…

Linux上实现ssh免密码登陆远程服务器

0.说明平常使用ssh登陆远程服务器时&#xff0c;都需要使用输入密码&#xff0c;希望可以实现通过密钥登陆而免除输入密码&#xff0c;从而可以为以后实现批量自动部署主机做好准备。环境如下&#xff1a;IP地址操作系统服务器端10.0.0.128/24CentOS 6.5 x86客户端10.0.0.129/2…

【强连通分量+概率】Bzoj2438 杀人游戏

Description 一位冷血的杀手潜入 Na-wiat&#xff0c;并假装成平民。警察希望能在 N 个人里面&#xff0c;查出谁是杀手。 警察能够对每一个人进行查证&#xff0c;假如查证的对象是平民&#xff0c;他会告诉警察&#xff0c;他认识的人&#xff0c; 谁是杀手&#xff0c; 谁是…

serialversionuid的作用_为什么阿里Java规约要求谨慎修改serialVersionUID字段

serialVersionUID简要介绍serialVersionUID是在Java序列化、反序列化对象时起作用的一个字段。Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的。在进行反序列化时&#xff0c;JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进…