提高系统可用性

提高系统可用性计算机网络发展史首先前解释一下什么是计算机网络,计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。计算机网络也称计算机通信网。关于计算机网络的最简单定义是:一些相互…

大家好,又见面了,我是你们的朋友全栈君。

                                     如何提高系统可用性 


    一. 时刻考虑应对故障
    
        1.设计
  通过使用一些设计模式,例如捕获底层异常、重试逻辑和断路器,可以帮助你捕获错误并尽可能避免影响其他功能。这样,你就能够限制问题的影响范围,即使应用程序的某些部分出现问题,依然能够提供其他一些有用的功能。

        2.依赖
   断路器模式在处理依赖故障时非常有用,因为它们可以降低依赖故障对你的系统的影响。如果没有断路器,你可能会因为依赖故障而降低系统的性能(例如,需要一个很长的超时机制来检测故障)。而使用了断路器,你可以“放弃”并停止使用某个依赖,直到你确认它已经恢复了正常工作。

        3.用户
   有些时候,拒绝式服务可能来自于“友方”。

    二.时刻考虑如何伸缩

  当你构建系统时,不要只考虑当前的流量,要考虑未来的流量。
  具体一点,这可能意味着:

  设计出能够增加数据库数量和容量的架构。

  考虑限制你的数据伸缩的原因。当数据库达到容量极限的时候会发生什么?你需要确认这些限制因素并在到达极限之前解决它们。

  你应当能够很容易地添加额外的应用程序服务器。这通常需要仔细考虑在何处和如何来维护状态,以及流量是如何路由的。注意将静态流量导向离线提供方。这样你的系统只需要处理必要的动态流量。使用外部的内容分发网络(CDN)不仅可以降低网络需要处理的流量,也能够利用CDN 的伸缩效率将静态内容更快地分发给用户。

  考虑是否可以静态生成一些动态资源。通常来说,看上去动态显示的内容实际上大多数是静态的,并且生成静态内容可以让你的应用程序提高可伸缩性。这种“应该静态的动态资源”有些时候隐藏在你想象不到的地方。

     三.缓和风险 

  保持系统高可用需要消除系统中的风险。当系统发生故障时,通常我们已经在这之前将故障原因确定为了风险。因此,确定风险是提高可用性的一个重要方法。
  所有的系统中都存在以下这些风险:

     *  存在系统崩溃的风险
     *  存在数据库崩溃的风险
     *  存在返回结果不正确的风险
     *  存在网络连接失败的风险
     *  存在新部署的软件功能出现故障的风险

   保持系统高可用需要消除风险。但是当系统变得越来越复杂时,消除所有风险也变得越来越不可能实现。保持一个大型系统高可用,更多的是来管理系统的风险,知道这些风险是什么,哪些风险是可接受的,以及你能够做什么来缓和风险。

我们称之为风险管理,它是构建高可用系统的核心内容。

风险管理中的一个部分是风险缓和。风险缓和指的是当问题发生时,我们知道如何去尽可能降低问题所带来的影响。缓和意味着即使当服务和资源不可用时,依然尽可能确保你的系统以最好的、最完整的状态工作。风险缓和需要考虑哪些事情可能会出错,并且立即制订相应的计划,以便当问题发生时能够提供相应的解决方案。

    四.监控可用性

    除非你看到问题发生,否则你不会知道应用程序中存在着问题。你应当确保对应用程序进行了适当的监控,以便可以从外部和内部两个视角来观察应用程序的运行状况。
    监控的程度取决于应用程序的特点和要求,但是通常必须具备以下这些监控。
  • 服务器监控
      监控服务器的健康状况,并且确保它们始终在有效运行。

  • 配置变化监控
      监控系统配置的变化,以便确定它们对应用程序的影响。

  • 应用程序性能监控
      深入了解你的应用程序和服务,确保它们按照预期运行。

  • 人为测试
      从用户的角度来实时检测应用程序的运行情况,以便在用户真正发现问题之前发现它们。

  • 报警
      当问题发生时通知相关人员,以便使问题可以得到快速有效的解决,将对用户的影响降低到最小。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158107.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 1到n全排列的hash函数(o(n))

    1到n全排列的hash函数(o(n))

    2021年8月11日
  • Hash一致算法_一致性hash是如何做数据迁移

    Hash一致算法_一致性hash是如何做数据迁移概述这里存在一种场景,当一个服务由多个服务器组共同提供时,key应该路由到哪一个服务.这里假如采用最通用的方式key%N(N为服务器数目),这里乍一看没什么问题,但是当服务器数目发送增加或减少时,分配方式则变为key%(N+1)或key%(N-1).这里将会有大量的key失效迁移,如果后端key对应的是有状态的存储数据,那么毫无疑问,这种做法将导致服务器间大量的数据迁移,从而照成

    2022年9月1日
  • linux搭建php运行环境_docker部署php项目

    linux搭建php运行环境_docker部署php项目方案一、phpStudyforLinuxphpStudyforLinux支持Apache/Nginx/Tengine/Lighttpd,支持php5.2/5.3/5.4/5.5切换已经在centos-6.5,debian-7.4.,ubuntu-13.10测试成功使用说明:服务进程管理:phpstudy(start|stop|restart|uninstall)

    2022年9月16日
  • 第三方API接口_第三方个人支付接口

    第三方API接口_第三方个人支付接口转载:https://www.jianshu.com/p/fdaba9124ae7下面列举了国内的常用、实用的API接口,按照笔记、出行、词典、电商、地图、电影、即时通讯、开发者网站、快递查询、旅

    2022年8月4日
  • k8s基础知识_k8s快速入门

    k8s基础知识_k8s快速入门K8S的基础学习,欢迎来访

    2022年8月11日
  • DNS服务器设置正确,DNS服务器配置(DNS各属性详细介绍)[通俗易懂]

    DNS服务器设置正确,DNS服务器配置(DNS各属性详细介绍)[通俗易懂]建立好DNS服务器后,用户可以在菜单中选择【属性】选项修改其配置。下面介绍如何配置DNS服务器的选项卡。具体的步骤如下。1.【接口】选项卡的配置图15-21所示为DNS服务器属性的【接口】选项卡,默认情况下,DNS服务器将侦听所有向该DNS服务器发出的域名解析请求和转发解析的DNS消息。如果要限制DNS服务器只负责侦听特定的IP地址发出的域名解析请求,可以在该选项卡中进行设置。选中【只在下列IP地…

    2022年6月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号