读发布!设计与部署稳定的分布式系统(第2版)笔记10_自动化和缓慢的响应

news2025/1/16 11:16:40

 

1. 工业机器人

1.1. 具有多层防护措施,防止对人员、机器和设施造成损害

1.2. 防护措施能限制机器人的动作和传感器的感知

1.3. 机械臂的旋转范围会远远小于它可以达到的全部运动范围

2. 自动化

2.1. 它更像是工业机器人

2.1.1. 掌握控制层感知系统的当前状态

2.1.2. 将其与期望的状态进行对比

2.1.3. 对系统施加影响,使当前状态进入到期望状态

2.2. 自动化系统并未简单地按照人类管理员的意愿行事

2.2.1. 自动化平台与管理员关于系统预期状态的不同“信念”的冲突,引发了2016年8月11日链接聚合网站Reddit遭遇停机事故

2.2.2. 刻意的手动更改与自动化平台之间的冲突

2.3. 自动化使得管理员能够花费较少的努力进行大量的操作,这就是一个力量倍增器

2.4. 自动化系统面对两套相互冲突的指令时,也会卡壳

2.5. 由自动化所引发的操作,需要花时间才能完成

2.5.1. 这段时间通常会比监控的时间间隔要长,因此请务必考虑到系统需要经过一些延迟后,才能对操作做出响应

3. 控制层

3.1. 控制层中的软件主要管理基础设施和应用程序,而不是直接交付用户功能

3.1.1. 日志记录

3.1.2. 监控

3.1.3. 调度程序

3.1.4. 扩展控制器

3.1.5. 负载均衡器

3.1.6. 配置管理

3.2. 基础设施管理工具可以迅速对系统产生巨大的影响,要在其内部构建限制器和防护措施,防止其快速毁掉整个系统

3.3. 控制层软件中实现类似工业机器人的防护措施

3.3.1. 如果软件观测器显示系统中80%以上的部分不可用,那么与系统出问题相比,软件观测器出问题的可能性更大

3.3.1.1. 被隔离的节点无法正确地感知当前状态

3.3.1.2. 控制系统会感知环境,但它们有可能被愚弄

3.3.2. 运用滞后原则

3.3.2.1. 快速启动机器

3.3.2.2. 要慢慢关机

3.3.2.3. 启动新机器要比关闭旧机器更安全

3.3.3. 当期望状态与观测状态之间的差距很大时,要发出确认信号,这相当于工业机器人上的大型黄色旋转警示灯在报警

3.3.4. 那些消耗资源的系统应该设计成有状态的,从而检测它们是否正在试图启动无限多个实例

3.3.5. 构建减速区域,缓解势能

3.3.5.1. 控制层虽然每秒都能感知到系统已经过载,但它启动一台虚拟机处理负载需要花费5分钟

3.3.5.2. 大量负载依然存在的情况下,要确保控制层不会在5分钟内启动300个虚拟机

4. 缓慢的响应

4.1. 通常由过度的需求引起

4.2. 争着使用已经供不应求的数据库连接,会使响应变慢,进而加剧这种争用,导致恶性循环

4.3. 内存泄漏经常表现为响应缓慢

4.3.1. 内存泄漏会导致垃圾收集器过度运行,从而引发响应缓慢

4.4. 低层级的低效协议会导致网络停顿,从而导致响应缓慢

4.5. 对网站来说,响应缓慢会招致更多的流量

4.5.1. 那些等待页面响应的用户,会频繁地单击重新加载按钮,为已经过载的系统施加更多的流量

4.6. 缓慢的响应会将调用系统和被调用系统中的资源拖得动弹不得

4.6.1. 生成响应较慢比拒绝连接或返回错误更糟

4.7. 缓慢的响应倾向于逐层向上传播,并逐渐导致层叠失效

4.7.1. 一旦陷入响应缓慢,上游系统本身的处理速度也会随之变慢,并且当响应时间超过其自身的超时时间时,会很容易引发稳定性问题

4.8. 快速返回系统失效信息,能使调用方的系统快速完成事务处理,最终成功或是系统失效,取决于应用程序的逻辑

4.9. 让系统具备监控自身性能的能力,就能辨别其何时违背SLA

4.9.1. 系统能跟踪自己的响应情况,那么就可以知道自己何时变慢

4.9.2. 系统平均响应时间超出系统所允许的时间时,可以考虑发送一个即时错误响应

4.9.3. 当平均响应时间超过调用方的超时时间时,应该发送这样的响应

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

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

相关文章

chatgpt赋能python:Python的分割函数:split的介绍和使用方法

Python的分割函数:split的介绍和使用方法 在Python编程中,我们经常需要对字符串进行操作。其中,分割字符串是一项常见的任务。Python中的split()函数可以用于将字符串按照指定的分隔符进行拆分。本文将介绍split()函数的使用方法以及注意事项…

0019-TIPS-2019-tokyowesterns-gnote : switch(jump-table) Doubule Fetch

漏洞源码 #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> #include <linux/fs.h> #include <linux/proc_fs.h> #include <linux/string.h> #include <linux/slab.h> #include <asm/uaccess.h>…

python:并发编程(二十)

前言 本文将和大家一起探讨python并发编程的实际项目&#xff1a;win图形界面应用&#xff08;篇二&#xff0c;共八篇&#xff09;&#xff0c;系列文章将会从零开始构建项目&#xff0c;并逐渐完善项目&#xff0c;最终将项目打造成适用于高并发场景的应用。 本文为python并…

C语言贪吃蛇课程设计实验报告(包含贪吃蛇项目源码)

文末有贪吃蛇代码全览,代码有十分细致的注释!!!文末有贪吃蛇代码全览,代码有十分细致的注释!!!文末有贪吃蛇代码全览,代码有十分细致的注释!!! 码文不易&#xff0c;给个免费的小星星和免费的赞吧&#xff0c;关注也行呀(⑅•͈ᴗ•͈).:*♡ 不要白嫖哇(⁍̥̥̥᷄д⁍̥̥…

Mac5款高效实用软件,值得推荐

目录 1.MarginNote 3&#xff1a;阅读批注学习笔记软件 2.iShot&#xff1a;Mac截图、长截图、带壳截图、贴图、标注、取色、录屏、录音、OCR、翻译&#xff0c;合集工具 3.KeyCastr-实时显示按下的按键 4.MindNode-超美观的思维导图 5.One Switch&#xff1a;系统设置一键…

CopyOnWriteArrayList源码

介绍 CopyOnWriteArrayList是Java并发包中提供的一个并发容器&#xff0c;它是个线程安全且读操作无锁的ArrayList&#xff0c;写操作则通过创建底层数组的新副本来实现&#xff0c;是一种读写分离的并发策略 在保证并发读取的前提下&#xff0c;确保了写入时的线程安全&…

百度 RT-DETR : 在实时目标检测上击败所有 YOLO !

论文地址&#xff1a;https://arxiv.org/abs/2304.08069 代码地址&#xff1a;https://github.com/PaddlePaddle/PaddleDetection 最近&#xff0c;基于端到端的 Transformer 检测器&#xff08;DETRs&#xff09;取得了显著的性能。然而&#xff0c;DETRs 的高计算成本问题尚…

chatgpt赋能python:Python的加减乘除使用指南

Python的加减乘除使用指南 Python是一种高级编程语言&#xff0c;其数学计算库和处理数值数据的能力使其成为科学计算&#xff0c;数据分析和机器学习领域的首选语言之一。在Python中&#xff0c;加减乘除是最基本和常用的四种数学计算操作。在本篇文章中&#xff0c;我们将介…

pyqt的学习(三)----鼠标点击和按键处理

QmyChartView 类的说明 QChart 和 QChartView 是基于 Graphics View 结构的绘图类。要对一个 QChart 图表进行鼠 标和按键操作&#xff0c;需要在 QChartView 类里对鼠标和按键事件进行处理&#xff0c;这就需要自定义一个 从 QChartView 继承的类。 QmyChartView 类是从 QC…

津津乐道设计模式 - 策略模式详解(以女友购物策略让你彻底明白)

&#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Micro麦可乐的博客 &#x1f425;《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程&#xff0c;入门到实战 &#x1f33a;《RabbitMQ》…

Git工具【系统学习】

第一章 Git快速入门 1.1 Git概述 Git是一个免费的&#xff0c;开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型或大型的各种项目。Git易于学习&#xff0c;占用空间小&#xff0c;性能快得惊人。 1.2 SCM概述 SCM&#xff08;Software Configuration Managem…

Deepin Community Live CD New Kernel——自带6.3.8内核的镜像和apt源

镜像介绍 此镜像属于 Deepin Community Live CD 系列&#xff08;Deepin Community Live CD 简称为 DCLC&#xff0c;Deepin Community Live CD 是什么&#xff1f;传送门&#xff1a;https://bbs.deepin.org/post/242933&#xff09;&#xff0c;New Kernel 系列镜像旨在可以…

chatgpt赋能python:Python的下载流程

Python的下载流程 Python是一款流行的编程语言&#xff0c;其掌握程度在当今计算机科学领域越来越受到重视。在本文中&#xff0c;我们将探讨Python的下载流程&#xff0c;为初学者提供一些有用的信息。特别是&#xff0c;我们将着重介绍如何在Windows操作系统上下载Python。 …

Golang每日一练(leetDay0105) 超级丑数、右侧小于当前元素的个数

目录 313. 超级丑数 Super Ugly Number &#x1f31f;&#x1f31f; 315. 计算右侧小于当前元素的个数 Count-of-smaller-numbers-after-self &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golang每日一练…

chatgpt赋能python:Python下载安装教程

Python下载安装教程 Python是一种高级编程语言&#xff0c;具有简单易学、强大多样的特点&#xff0c;不仅可以用来开发网站、应用程序、游戏&#xff0c;还可以用于数据科学、机器学习、人工智能等领域&#xff0c;被广泛应用于各行各业。 本文将为您提供详细的Python下载安…

MongoDB简介

目录 1、NoSQL概述 2、什么是MongoDB 3、MongoDB特点 一、MongoDB安装&#xff08;docker方式&#xff09; 二、MongoDB安装&#xff08;普通方式&#xff09; 三、MongoDB 概念解析 1、NoSQL概述 NoSQL(NoSQL Not Only SQL)&#xff0c;意即反SQL运动&#xff0c;指的是…

FcaNet: Frequency Channel Attention Networks论文总结

论文&#xff1a;https://arxiv.org/abs/2012.11879 中文版&#xff1a;FcaNet: Frequency Channel Attention Networks 源码&#xff1a;https://github.com/cfzd/FcaNet或https://gitee.com/yasuo_hao/FcaNet 一、论文背景和出发点 问题&#xff1a;许多工作都集中在如何设计…

【T+】安装畅捷通T+提示安装向导找不到环境检测工具,是否手动选择环境检测工具文件夹。

【问题描述】 在windows server 2008r2系统环境下&#xff0c; 安装畅捷通T专属云标准版18.0软件的时候&#xff0c;提示&#xff1a; 安装向导找不到环境检测工具&#xff0c;是否手动选择环境检测工具文件夹&#xff08;CheckEnvironment&#xff09; 点击【是】手动选择&…

leetcode数据库题第六弹

leetcode数据库题第六弹 626. 换座位1280. 学生们参加各科测试的次数1321. 餐馆营业额变化增长1327. 列出指定时间段内所有的下单产品1341. 电影评分1378. 使用唯一标识码替换员工ID1393. 股票的资本损益1407. 排名靠前的旅行者1484. 按日期分组销售产品1517. 查找拥有有效邮箱…

数字基带传输

常用码型&#xff1a; 为了适应信道的传输&#xff0c;传输码型必须具备以下基本特性&#xff1a; 1&#xff09;无直流、很少的低频分量&#xff1b; 2&#xff09;含有码元定时信息&#xff1b; 3&#xff09;主瓣宽度窄&#xff1b; 4&#xff09;适用于各种信源的…