iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么检测一台机器是否宕机
  • 743
分享到

怎么检测一台机器是否宕机

2023-06-16 22:06:12 743人浏览 八月长安
摘要

这篇文章主要介绍了怎么检测一台机器是否宕机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。检测一台机器是否宕机的应用场景如下:1, 工作机器宕机,总控节点需要能够检测到并且将原

这篇文章主要介绍了怎么检测一台机器是否宕机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

检测一台机器是否宕机的应用场景如下:

1, 工作机器宕机,总控节点需要能够检测到并且将原有服务迁移到集群中的其它节点。

2, 总控节点宕机,总控节点的备份节点(一般称为Slave)需要能够检测到并替换成主节点继续对外服务。

检测一台机器是否宕机必须是可靠的。在大规模集群中,机器可能出现各种异常,比如停电,磁盘故障,过于繁忙导致假死等。对于机器假死,如果总控节点认为机器宕机并将服务迁移到其它节点,假死的机器又认为自己还可以提供服务,则会出现多个节点服务同一份数据而导致数据不一致的情况。

首先必须明确,理论上检测另外一台机器是否宕机是无法做到的,有兴趣的同学可以参考Fischer的论文。可以简单理解如下:A机器往B机器发送心跳包,如果B机器不发送响应,A无法确定B机器是宕机了还是过于繁忙,由于A和B两台机器的时钟可能不同步,B机器也无法确定多久没有收到A机器的心跳包可以认为必须停止服务。因此,A机器没有办法确定B机器已经宕机或者采取措施强制B机器停止服务。

当然,工程实践中,由于机器之间会进行时钟同步,我们总是假设A和B两台机器的本地时钟相差不大,比如相差不超过0.5秒。这样,我们可以通过Lease机制进行宕机检测。Lease机制就是带有超时时间的一种授权。假设总控节点需要检测工作节点是否宕机,总控节点可以给工作节点发放Lease授权,工作节点持有有效期内的Lease才允许提供服务,否则主动下线停止服务。工作节点的Lease快要到期的时候向总控节点重新申请Lease(一般称为renewLease),总控节点定时检测所有工作机的Lease授权是否合法,如果发现某台工作机Lease失效,可以将工作机上的服务迁移到集群中的其它机器,这时因为工作机发现自己Lease失效会主动停止服务。当然,这里需要注意,由于总控节点和工作机的时钟可能不一致且有网络延迟,总控节点上的Lease超时时间要长,也就是说,如果工作节点的Lease超时时间是12秒,总控节点可能需要13秒后才能确认工作节点已经停止了服务,从而避免数据不一致问题。

同构节点之间的选主也有一个宕机检测问题。比如总控节点宕机,备份节点需要能够检测并升级为主节点继续对外服务。Mysql数据库经常采用Heartbeat + DRBD (Distributed Replicated Block Device) + Mysql高可用性方案,据说能够达到3个9的高可用性,主节点和备节点维持Heartbeat心跳,当提供服务的主节点出现故障时,备节点的Heartbeat检测到主节点没有心跳(例如,Ping不通主节点),备节点自动接管虚拟IP,升级为主节点提供mysql读写服务。由于Heartbeat检测机器主节点宕机不可靠,这个方案存在众所周知的脑裂问题,即集群中可能同时存在多个主节点同时提供服务。解决这个问题本质上还是需要引入仲裁节点,比如Heartbeat + DRBD方案中引入Fence节点使出现问题的节点从集群中脱离,或者引入分布式服务,比如Chubby的开源实现ZooKeeper服务。分布式锁服务实现主节点选举大致如下:主节点和备节点到Chubby中抢锁,抢到锁的节点在锁的有效期(Lease期)内提供服务,当主节点锁的Lease快要到期时,主节点申请延长锁的超时时间,正常情况下分布式锁服务总是优先满足主节点的请求,当主节点出现故障时,备节点能够抢到锁切换为主节点提供服务。

***还有一个问题,假设总控节点通过Lease机制检测工作节点是否宕机,这种方案是可靠的,不过当总控节点宕机时,如果不采取任何措施,集群中的所有工作节点都将因为无法重新申请Lease而停止服务,这就是带有总控节点的设计固有的脆弱性,某个设计或者编码的错误都有可能造成严重的影响。解决这个问题一般会有一个叫做Grace Period的机制,工作节点Lease超时时将停止服务,但是工作节点并不一开始就重启或者下线,而是处于一种危险状态(称为Jeopardy),这种状态持续一个Grace Period,比如45秒。如果在Grace Period 内总控节点重启,工作节点和总控节点重新联系上从而可以切换为正常状态继续提供服务。

如果需要较好地理解宕机及选举相关的问题,可以阅读并思考Paxos相关的论文,比如Paxos made simple, The Part-time Parliament, Paxos made live, Paxos made practical, Chubby等。有任何问题,欢迎讨论。

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么检测一台机器是否宕机”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么检测一台机器是否宕机

本文链接: https://www.lsjlt.com/news/285460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么检测一台机器是否宕机
    这篇文章主要介绍了怎么检测一台机器是否宕机,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。检测一台机器是否宕机的应用场景如下:1, 工作机器宕机,总控节点需要能够检测到并且将原...
    99+
    2023-06-16
  • Linux中怎么快速检测网站是否宕机
    在Linux中可以使用以下几种方法快速检测网站是否宕机: 使用ping命令:在终端中输入ping ,如果能够成功接收到响应,说明...
    99+
    2023-10-21
    Linux
  • 在Linux终端如何快速检测网站是否宕机
    这篇文章主要为大家展示了“在Linux终端如何快速检测网站是否宕机”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Linux终端如何快速检测网站是否宕机”这篇文章吧。方法 1:使用 fping ...
    99+
    2023-06-16
  • 怎么检测浏览器是否支持WebWorker
    本篇内容介绍了“怎么检测浏览器是否支持WebWorker”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • 怎么检测浏览器是否支持html5视频
    这篇文章主要为大家展示了“怎么检测浏览器是否支持html5视频”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么检测浏览器是否支持html5视频”这篇文章吧。运...
    99+
    2022-10-19
  • PHP中怎么检测一个类是否可以被foreach遍历
    这篇文章将为大家详细讲解有关PHP中怎么检测一个类是否可以被foreach遍历,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在PHP中检测一个类是否可以被foreach遍历在PHP中,我们可以非常简单的判...
    99+
    2023-06-15
  • openstack怎么检查虚拟机ip是否能ping通
    要检查OpenStack中的虚拟机IP是否能够ping通,可以按照以下步骤进行操作:1. 使用ssh登录到OpenStack控制节点...
    99+
    2023-10-11
    openstack
  • 云服务器密码机检测规范是什么
    首先需要在云服务器上安装密码机检测软件,软件会自动扫描云服务器中的密码机,以确保所有的密码都被正确检测到。 当检测到密码机存在异常时,软件会自动记录该异常,并发送异常报告给云服务器管理员。 云服务器管理员需要查看异常报告,以了解密码机的情...
    99+
    2023-10-28
    密码机 服务器
  • 计算机中什么命令用于检测网络连接是否正常
    这篇文章主要介绍了计算机中什么命令用于检测网络连接是否正常,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用于检测网络连接是否正常的命令是“ping”命令,只需要在命令窗口执行...
    99+
    2023-06-14
  • 阿里云服务器出现宕机是怎么回事
    阿里云服务器出现宕机可能会导致数据丢失、系统崩溃、服务中断等问题。以下是导致阿里云服务器宕机的常见原因: 服务故障:服务器无法提供正常的服务,例如服务无法启动、响应速度变慢、系统崩溃等。 网络连接问题:服务器出现宕机可能会导致与其他服务...
    99+
    2023-10-27
    阿里 服务器
  • redis怎么传数据到另一台机器
    要将数据从一台Redis服务器传输到另一台Redis服务器,可以使用Redis的主从复制机制或Redis的集群模式。下面分别介绍这两...
    99+
    2023-09-11
    redis
  • 一台机器上怎么安装两个Mysql
    本篇文章为大家展示了一台机器上怎么安装两个Mysql,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 网上大部分文档都是用mysql_multi来实现一个机器上跑多...
    99+
    2022-10-18
  • 阿里云服务器出现宕机是怎么回事啊
    首先,这次宕机事件提醒我们,在云服务器租用和托管中,需要格外注意云服务器的可靠性和稳定性。这不仅是保障云服务器租用服务的必要条件,也是保障用户使用体验的基本要求。如果云服务器的稳定性和可靠性不够,用户的业务可能会受到影响,甚至无法正常运行。...
    99+
    2023-10-27
    阿里 服务器
  • 云服务器挖矿怎么不被检测到呢手机
    首先,我们需要了解什么是云服务器挖矿。云服务器挖矿是指使用虚拟机来运行计算密集型的程序,这些计算密集型程序可以通过云服务器提供商的服务器进行托管和运行。当用户购买云服务器时,他们将虚拟机上的加密货币奖励转移到云服务器上,这些奖励可以被用于购...
    99+
    2023-10-28
    不被 检测到 挖矿
  • 两台云服务器集群成一台主机怎么办
    如果您想将两台云服务器组成集群,可以按照以下步骤操作: 将服务器连接到集群中的主服务器上:在主服务器上启动两台服务器,将其连接在一起,然后将其配置为双机热备或双机互备。 启动集群:将所有主服务器连接在一起,并启动两台服务器,以便在需要时...
    99+
    2023-10-26
    集群 两台 一台主机
  • php怎么检测指定字符串中是否包含另一个字符串
    4种方法:1、用strpos(),语法“strpos(字符串,另一个字符串)”,返回位置值则包含。2、用strrpos(),语法“strrpos(字符串,另一字符串)”,返回位置值则包含。3、用explode(),语法“explode(另一...
    99+
    2022-09-02
  • 阿里云服务器宕机是什么意思啊怎么解决
    首先,要了解服务器宕机的原因。一些可能的原因包括软件问题、硬件故障、网络故障、配置错误等。当阿里云服务器宕机时,需要及时采取措施来确保服务器正常运行,例如检查硬件是否正常运行、检查网络连接是否正常等。如果发现服务器硬件或网络连接出现问题,需...
    99+
    2023-10-28
    阿里 服务器
  • Python机器视觉怎么实现基于OpenCV的手势检测
    本篇内容介绍了“Python机器视觉怎么实现基于OpenCV的手势检测”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 简介今天学长向大家介...
    99+
    2023-06-22
  • 两台云服务器集群成一台主机怎么设置
    如果您只有一台主机,并且希望在同一台云服务器上运行多个应用程序和服务,您可以采取以下步骤: 将数据从同一台主机转移到其他主机上:您可以将所有应用程序和数据从同一台主机上转移到另一个云服务器上。这可以通过在云服务器上创建虚拟私有数据中心,...
    99+
    2023-10-26
    集群 两台 一台主机
  • 两台云服务器集群成一台计算机怎么办
    如果您只有一台计算机要运行 AWS 云服务器集群,您可以按照以下步骤尝试解决这个问题: 检查您的 Web 服务器设置:在 AWS 的控制台中,右键单击正在运行的服务器,然后选择“属性”。在 AWS 的控制台中,找到“设置”,然后找到“高...
    99+
    2023-10-26
    一台 集群 两台
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作