提高系统可用性

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

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

                                     如何提高系统可用性 


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

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

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

    二.时刻考虑如何伸缩

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

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

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

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

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

     三.缓和风险 

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

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

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

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

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

    四.监控可用性

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

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

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

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

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

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

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

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


相关推荐

  • git ssh认证(网站认证)

    一、windows本地安装好git客户端,官网下载一路安装即可二、右键选项打开gitbash$ssh-keygen-trsa<==建立密钥对,-t代表类型,有RSA和DSA两种Generatingpublic/privatersakeypair.Enterfileinwhichtosavethekey(/c/Users/HP/.ssh/id_r…

    2022年4月12日
    143
  • PAT乙级_1007

    PAT乙级_1007问题描述:让我们定义dn为:dn=pn+1-pn,其中pi是第i个素数。显然有d1=1且对于n&gt;1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(&lt;105),请计算不超过N的满足猜想的素数对的个数。输入格式:每个测试输入包含1个测试用例,给出正整数N。输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数…

    2022年6月11日
    21
  • 【Android开发】范例2-实现放大镜效果

    【Android开发】范例2-实现放大镜效果

    2021年9月6日
    52
  • C# List用法 List 实列介绍

    C# List用法 List 实列介绍 usingSystem;usingSystem.Collections.Generic;namespaceList{classProgram{staticvoidMain(stri

    2022年7月4日
    23
  • 【Unity3D开发小游戏】《文字冒险游戏》Unity开发教程

    【Unity3D开发小游戏】《文字冒险游戏》Unity开发教程基本程序设计(故事卡)游戏会为玩家呈现一个“故事卡”。故事卡上包含一些文字,其中一部分是用于描述玩家当前的状态,另外一部分是在当前情况下玩家可以做出的一系列选择。根据玩家的不同选择,剧情也会按照不同的分支向前发展,并持续出现新的卡片与选择,直到最终的卡片不再有新的选择,则游戏结束。制作一张“故事卡”很简单。根据上诉需求,我们新建StoryCard脚本,脚本代码如下:StoryCard在…

    2022年5月26日
    55
  • 【强化学习】DDPG(Deep Deterministic Policy Gradient)算法详解[通俗易懂]

    【强化学习】DDPG(Deep Deterministic Policy Gradient)算法详解[通俗易懂]http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html引自ReinforcementLearning:AnIntroduction强化学习名著2018新编版DPG论文http://www0.cs.ucl.ac.uk/staff/d.silver/web/Applications_files/determinis…

    2022年6月15日
    44

发表回复

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

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