基本阐述


  1. 心跳机制是定时发送一个自定义的结构体(心跳包),让对方知道自己还活着,以确保连接的有效性的机制。
  2. 心跳机制是每隔几分钟发送一个固定信息给服务端,服务端手收到后回复一个固定的信息。如果服务端几分钟内没有收到客户端消息则视客户端断开。
  3. 发送方可以是客户端或服务端,根据实际情况,一般是客户端;因为一个服务端可能有很多客户端,服务端作为发送方的比较耗费性能。
  4. 应用场景:判断长连接是否真正存活。当长连接没有流量时,无法判断是通信异常引起还是通信正常但没有业务流量引起时,通过心跳包进行判断。
  5. 实现技术
  • 方式一:应用层实现心跳机制(推荐)
  • 优点:实现策略灵活,能及时检测到连接状态;
  • 缺点:每个应用都需要有一套,无法底层共用;
  • 方式二:利用TCP的KeepAlive机制
  • TCP协议本身提供了心跳机制,需要通过SO_KEEPALIVE开启。默认情况下,当连接空闲2小时后,每隔75s发送一次心跳包,如果连续9次没有收到响应则关闭连接。
  • 优点:不需要二次开发,简单配置参数即可;
  • 缺点:网络环境的复杂性使得KeepAlive机制容易失效;

在现实中应用


  1. Eureka + 心跳机制
  2. 代码举例 Eureka 配置
  3. Eureka 的 心跳机制 还有概念 叫续租。心跳续租。

什么是Eureka?

  1. Eueka是Netflix(网飞公司)开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将他集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。
  2. 这里有些概念来源于亚马逊AWS(Amazon Web Service)云服务的。即区域region、可用区available zone = AZ。
  3. AWS的每个区域region一般由多个可用区(AZ)组成,而一个可用区一般是由多个数据中心组成。
  4. 在非AWS环境下,可以简单地将region理解为Eureka集群,zone理解成机房。一个Eureka集群被部署在了zone1机房和zone2机房中。
  5. 每个可用区:都是一个Eueka Server 和 多个 Eueka Client组成。
  6. 其中 Eueka Client 相对于应用程序角色又分:应用程序Server Eueka Client;应用程序Client EuekaClient
  7. 然后 应用程序Server 可能对应 多个 应用程序Client,这里解释了zone可以理解成机房,因为应用程序Server一般要部署在一个服务器上,不同应用程序Client提供不同的微服务,视情况,分布式部署到多台机器上。这些机器放在一块,由一个机房统一管理。
  8. 最后发现这些应用程序Client,并不是常理解的手机客户端,电脑客户端等终端。而是相对于这些终端的服务提供者。终端是服务消费者。
  9. Eureka就是一个服务中心,避免了服务之间的直接调用,方便后续的水平扩展、故障转移等。服务中心这么重要的组件一旦挂掉将会影响全部服务,因此需要搭建Eureka集群来保持高可用性,生产中建议最少两台。
  10. Eueka Server是怎么在现实中集成的?实际上在应用程序Server Eueka Client所在项目通过依赖集成的 如下
  11. EuekaClient 是怎么在现实中集成的?实际上在应用程序Client Eueka Client所在项目通过依赖集成的 如下
    1. spring-cloud-starter-parent 具备spring-boot-starter-parent同样功能并附加Spring Cloud的依赖
    2. spring-cloud-starter-config 默认的配置服务依赖,快速自动引入服务的方式,端口8888
    3. spring-cloud-config-server/client 用户自定义配置服务的服务端/客户端依赖
    4. spring-cloud-starter-eureka-server 服务发现的Eureka Server依赖
    5. spring-cloud-starter-eureka 服务发现的Eureka客户端依赖
    6. spring-cloud-starter-hystrix/zuul/feign/ribbon 断路器(Hystrix),智能路有(Zuul),客户端负载均衡(Ribbon)的依赖
    7. angular-ui-router 页面分发路由依赖
  12. Eueka依赖包过期问题
    1. 使用最新的 spring-cloud-starter-netflix-eureka-server,而spring-cloud-starter-eureka-server已经过期
    2. 使用最新的 spring-cloud-starter-netflix-eureka-client ,而spring-cloud-starter-eureka 已经过期

Eureka 心跳机制相关推荐

  1. Eureka心跳机制

    1.心跳是从什么时候开始的 在每一个Eureka Client启动的时候,都会有一个HeartbeatThread的心跳线程,这个就是一个后跳线程,保证默认30秒的时候向Eureka Server发送 ...

  2. eureka心跳_Eureka工作原理及心跳机制

    Eureka原理 1.基本原理 上图是来自eureka的官方架构图,这是基于集群配置的eureka: 处于不同节点的eureka通过Replicate进行数据同步 Application Servic ...

  3. 服务器状态显示down,Eureka心跳健康检查机制和Spring boot admin 节点状态一直为DOWN的排查(忽略某一个节点的健康检查)...

    运行阶段执行健康检查的目的是为了从Eureka服务器注册表中识别并删除不可访问的微服务,Eureka 服务器并不是向客户端发送心跳请求,而是反过来,Eureka 客户端将心跳发送到Eureka服务器, ...

  4. Eureka心跳续约机制

    本文来说下Eureka心跳续约机制 文章目录 概述 Eureka-Client发送心跳 DiscoverClient HeartbeatThread lastDirtyTimestamp Eureka ...

  5. Eureka中的心跳机制

    前言 从以前的单体架构到现在的微服务分布式架构, 随着架构的演变, 所需要的技术越来越多, 要求的也越来越多了, 今天来谈一下微服务领域中的心跳机制         在微服务领域,心跳机制很常见了, ...

  6. eureka自我保护时间_Spring Cloud Eureka 自我保护机制

    自我保护出现 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行. 默认情况下,如果Eureka Serve ...

  7. Spring Cloud Eureka 自我保护机制

    Spring Cloud Eureka 自我保护机制 Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 会将这 ...

  8. eureka自我保护时间_SpringCloud Eureka自我保护机制

    自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他节点的正常运行. 默认情况下,如果Eureka Serve ...

  9. SpringCloud Eureka自我保护机制

    转载自 SpringCloud Eureka自我保护机制 自我保护背景 首先对Eureka注册中心需要了解的是Eureka各个节点都是平等的,没有ZK中角色的概念, 即使N-1个节点挂掉也不会影响其他 ...

最新文章

  1. 如何有条件地向React组件添加属性?
  2. php strncmp,php strncmp函数怎么用?
  3. vue如何封装请求接口方法
  4. 22504!Windows 11 新预览版发布
  5. Java遍历Map的4种方式
  6. matlab pretty什么用,matlab如何使输出结果更美观(symdisp函数——pretty函数升级版)...
  7. Mstsc、Telnet、SSH之间的区别
  8. 学习动态性能表3----v$session_wait
  9. 关于vscode新建文档代码自定义模板的设置
  10. js将url转换二维码
  11. WinFormDEV知识小结
  12. 一阶微分电路和积分电路有何功能
  13. 分享一个将字符串中间段替换为*号的函数
  14. 使用jQuery实现时钟的效果
  15. 黄健翔,请你像个男人一样去向全国的球迷道歉!(摘自网络)
  16. 第五章 如何使用java中的线程打印偶数和奇数
  17. 【快速入门】YOLOv5目标检测算法
  18. 几经波折的Ubuntu安装tensorflow
  19. GPS/北斗模块小小总结
  20. 联想ghost重装系统_一键ghost官网,图文详解一键ghost怎么重装系统

热门文章

  1. 可视化架构设计——C4介绍
  2. Altium Designer出现collision警告
  3. 电商html轮播动效,制作一个电商网站的轮播图效果
  4. R语言爬取中国天气网单个城市实时天气预报数据
  5. 锦州铁路高中2021高考成绩查询入口,锦州高考成绩查询系统
  6. 二手车好大风,老平台都推新服务
  7. FT232RL为接口转换芯片
  8. 【Unity】Post-process后处理之Grain
  9. 公司网站源码(公司官网源码)PHP
  10. C语言学习之选择结构程序设计总结