分布式计算中的八大谬论

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图) 本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。 阅读详情

构建分布式系统是一项复杂的工作。架构,设计,编码和测试对分布式系统的成功都至关重要。任何一点的失败都可能导致性能下降,故障频发,费用超标以及最终导致客户流失。在20世纪90年代Sun Microsystems的Peter Deutsch,James Gosling和其他人总结出了分布式计算的八个谬论。随着时间的推移,IT人员对这些谬论的认识可能已经消退,所以想要提醒下大家。

八大谬论是:

  1. 网络可靠。 The network is reliable.
  2. 延迟为零。 Latency is zero.
  3. 带宽是无限的。 Bandwidth is infinite.
  4. 网络是安全的。 The network is secure.
  5. 拓扑不会改变。 Topology doesn’t change.
  6. 只有一个管理员。 There is one administrator.
  7. 运输成本为零。 Transport cost is zero.
  8. 网络是同质的。The network is homogeneous.

网络可靠

在局域内,网络可能看起来坚如磐石。毕竟,现在网络组件多久失败一次?即使单个组件发生故障,也确实存在大量冗余?那么,随着网络变得越来越复杂,网络管理就越容易出错,大多数都是配置错误。在某些情况下,多达三分之一的网络更改会导致影响网络可靠性的错误。软件和硬件都可能出现故障,尤其是路由器,它们占所有故障的四分之一左右。“不间断”电源也可能会中断,人们可能会发生不明智的设备配置更改,并且可能存在网络拥塞,拒绝服务(DoS)攻击以及软件和固件升级或修补程序失败。网络遭受自然灾害和非自然灾害,设计一个对这类东西具有弹性的网络需要技巧。广域链接超出您的控制范围,很容易出错。

最近几个月,Azure上的事件令人痛苦,而且这种失败率是主要云服务提供商的典型特征。对于移动应用程序,各种各样的事情都可能会出错:网络请求将以不可预测的间隔失败,目标将不可用,数据将到达目的地但无法发回确认,数据将在传输中损坏或到达不完整。移动应用程序必须在网络可靠性范围的可怕范围内具有弹性,但所有分布式应用程序必须能够应对所有这些可能性,并且网络节点必须能够应对服务器故障。

延迟为零

延迟与带宽不同。延迟是等待响应所花费的时间。除了明显的处理延迟外,还有网络延迟,包括传播延迟,节点延迟和拥塞延迟。传播延迟随距离增加:约为30 ms。欧洲和美国之间。路径中的节点数决定了节点延迟。

通常,开发人员在内部网中构建分布式系统,这些系统具有无关紧要的延迟,因此进行频繁的细粒度网络调用几乎不会受到惩罚。这种设计错误只有在投入实时系统时才会变得明显。

高延迟的一个令人不安的影响是它不是恒定的。在糟糕的网络上,偶尔可以在几秒钟内计算出来。就其性质而言,无法保证网络服务单个数据包的顺序,甚至不能保证请求进程仍然存在。延迟会让事情变得更糟。此外,在应用程序通过发送多个同时请求进行补偿的情况下,可以通过对其的响应来加剧暂时高延迟。

带宽是无限的

虽然大多数现代电缆可以处理几乎无限的带宽,但我们还没有找到如何构建足够快的互连设备(集线器,交换机,路由器等)以保证所有连接用户的高带宽。典型的企业内部网仍将具有限制带宽的区域。

随着公共网络带宽的增加,网络对使用视频和音频的服务的使用也一样快,而视频和音频曾经使用过广播技术。诸如社交媒体之类的新用途往往会吸收不断增加的带宽。此外,主要城市以外的许多地方都存在“最后一英里”的限制,并且丢包的可能性也在增加。

一般而言,我们需要谨慎地假设高带宽是一种普遍的体验。无论网络带宽如何令人印象深刻,它都无法接近共同托管进程可以通信的速度。

网络是安全的

令人遗憾的是仍然遇到具有基本安全漏洞的基于网络的系统。网络攻击逐年增加,并且在好奇心,恶意和犯罪方面已经超越了它们的原始根源,成为国际冲突和政治“行动”的一部分。网络攻击是IT生活的一部分:对开发人员来说很无聊,但却是必不可少的。部分问题是网络入侵检测往往是低优先级,因此我们并不总是意识到成功的网络攻击。

传统上,漏洞通常是配置不当的防火墙的结果。大多数防火墙都会经常被检测出来,因为你会立即发现你是否愚蠢地禁用它们。然而,这只是破坏网络和防火墙的一种方式中的一种,只是防御的一部分。Wi-Fi通常是一个弱点,使用自己的设备(BYOD)可以允许通过受损设备进行入侵,虚拟化和软件定义网络(SDN)也是如此。越来越多的DevOps对快速变化的基础设施的需求使得更难以保持必要的控制措施。企业网络中的僵尸网络是一个持续存在的问题,以及通过业务合作伙伴的入侵。

您需要假设网络是敌对的,并且安全性必须深入。这意味着将安全性构建到分布式应用程序及其主机的基本设计中。

通过纵深防御,分布式系统的任何部分都需要具有访问其他网络资源的安全方式。

安全带来了自身的复杂性。这将来自维护不同用户帐户,权限,证书,帐户等的管理开销。一个主要的云网络中断是由于权限在更新之前到期而导致的。

拓扑不会改变

网络拓扑不断变化,速度非常快。由于“网络敏捷性”的压力越来越大,这是不可避免的,以便与快速变化的业务需求保持同步。

无论您在何处部署应用程序,都必须假设大部分网络拓扑都可能无法控制。网络管理员将一次进行更改,原因可能不符合您的利益。他们将移动服务器并更改网络拓扑以获得性能或安全性,并在服务器和网络故障的情况下进行路由更改。

因此,依赖特定端点或路由的持久性是错误的。必须始终从任何分布式设计中抽象出网络的物理结构。

只有一个管理员

除非系统完全存在于小型LAN中,否则将有不同的管理员与网络的各种组件相关联。他们将拥有不同程度的专业知识,不同的职责和优先事项。

如果出现导致服务失败的问题,这将很重要。您的服务级别协议将要求在一定时间内做出响应。第一阶段将是确定问题。除非有问题的网络部分的管理员是您的开发团队的一部分,否则这可能并不容易。不幸的是,这不太可能。在许多网络中,问题可能完全是另一个组织的责任。如果云组件是应用程序的重要组成部分,并且云中断,则无法确定优先级。你所能做的就是等待。

如果网络中有许多管理员,那么协调升级到网络或应用程序就更加困难,特别是当涉及到几个忙碌的人时。升级和部署必须协调完成,涉及的人数越多,这就变得越困难!

运输成本为零

运输成本是指通过网络传输数据的总体成本。我们可以参考时间和计算机资源,或者我们可以参考财务成本。

将数据从应用程序层传输到传输层需要CPU和其他资源。需要对结构化信息进行序列化(编组)或解析以将数据传输到线路上。这种性能影响可能大于带宽和延迟时间,因为XML的冗长和复杂性使得XML占用JSON的两倍。

金融运输成本不仅包括创建网络的硬件和安装成本,还包括监控和维护网络服务器,服务和基础设施的成本,以及如果发现带宽不足,或者您的服务器实际上无法处理足够的并发请求。我们还需要考虑租用线路和云服务的成本,这些成本由所使用的带宽支付

网络是同质的

今天的同质网络是罕见的,甚至比首次发现谬论时更为罕见!网络可能连接计算机和其他设备,每个设备具有不同的操作系统,不同的数据传输协议,并且所有设备都与来自各种供应商的网络组件相连。

但是,异构网络没有什么特别的错误,除非它涉及需要专门支持,设备或驱动程序的专有数据传输协议。从应用程序的角度来看,如果数据以开放标准格式(如CSV,XML或JSON)传输,并且使用行业标准的查询数据(如ODBC)的方法,则会有很大帮助。

如果所有组件都来自一个供应商,则可靠性更高,因为测试覆盖范围可能更大,但实际情况是组件的丰富组合。这意味着互操作性应该从任何分布式系统的设计开始就内置。

结论

虽然这个指导是在二十年前制定的,但我们今天仍在犯这些错误。这些错误显示为不安全的端点,由于大型对象的序列化导致的超时,丢失的事务,性能降低等等。避免这些错误意味着在每次设计和代码审查中需要考虑这些谬论。

YOLOv8改进 | 主干篇 | 利用MobileNetV1替换Backbone(轻量化网络结构) 本文给大家带来的改进机制是MobileNetV1,其是专为移动和嵌入式视觉应用设计的轻量化网络结构。这些模型基于简化的架构,并利用深度可分离卷积构建轻量级深度神经网络,其引入了两个简单的全局超参数,用于在延迟和准确性之间进行有效的权衡。实验表明,MobileNets在资源和准确性的权衡方面表现出色,并在多种应用(如对象检测、细粒度分类、面部属性识别和大规模地理定位)中展现了其有效性,这个模型非常适合轻量化的读者来使用。适用检测目标:轻量化网络结构适合轻量化的读者。 阅读详情

相关推荐

方差迭代计算公式

方差迭代计算过程推导术语约定递推公式过程推导 术语约定 (1)En=1n∑i=1nxi E_n =\frac{1}{n} \sum_{i=1}^{n}x_i \tag{1} En​=n1​i=1∑n​xi​(1) (2)F(n)=∑i=1n(x2−En) F(n) = \sum_{i=1}^{n}{(x^2-E_n)} \tag{2} F(n)=i=1∑n​(x2−En​)(2) (3)V(n)...

weixin_44479136的博客 7921

分布式计算的八大谬论

分布式计算的八个谬论在四十多年已提出,但是这八个谬论在如何仍有极大的参考意义,尤其是分布式应用盛行的今天。

云原生Java Web领域技术博客 1074

在Modelsim中手动添加仿真库

缘由:在使用rom ip核的时候发现仿真需要altera_mf库的支持,而我的ModelSim没有这个库,所以想写一篇手动添加仿真库的文章方便自己以后使用:首先新建一个库,名字叫做altera_mf:然后编译对应的库文件:这里altera_mf.v文件是在quartus安装路径下quartus\eda\sim_lib文件夹下,点击编译后退出:最后在modelsim->example文件夹下可以找到编译好的库文件:

欢迎一起交流问题! 3402

关于分布式计算的8个谬误 Eight Fallacies Of Distributed Computing

对于分布式计算的理解

Wow234567的博客 213

别再纠结了!手把手教你根据项目需求选对目标检测框架(MMDetection/Detectron2/YOLOv8实战对比)

本文详细对比了三大目标检测框架MMDetection、Detectron2和YOLOv8的适用场景与实战技巧,帮助开发者根据项目需求精准选型。从毕业设计到工业落地,分析不同场景下的核心需求与框架优势,提供决策树和避坑指南,确保技术选型与项目目标高度匹配。

weixin_30342209的博客 554

从零开始:手把手教你用Verilog搭建一个可配置的Cache模块(以Vortex GPGPU为例)

本文详细介绍了如何使用Verilog从零开始搭建一个可配置的Cache模块,以Vortex GPGPU为例。内容涵盖Cache设计基础、模块接口与参数化设计、核心子模块实现、仲裁与一致性机制、功能验证与性能调优等关键环节,适合RTL设计初学者和希望深入理解Cache工作原理的工程师。通过实战指南,读者可以掌握硬件代码分析技巧,提升Cache模块的设计能力。

weixin_42552315的博客 441

分布式系统中经典的8个谬误

您需要做的第一件事是抽象网络的物理结构。有几种方法可以做到这一点:停止硬编码 IP - 您应该更喜欢使用主机名。通过使用 URI,我们依靠 DNS 将主机名解析为 IP。当 DNS 不够时(例如,当您需要映射 IP 和端口时),则使用发现服务。Service Bus 框架还可以提供位置透明性。

程序员高级码农的博客 1279

OmniDrive(2):环境搭建

项目中使用的是全量的数据集(full dataset v1.0), 数据量比较大,训练验证(trainval) + test 总计200多G的数据,单独一个个下载会比较慢。参数,否则安装的时候会自动卸载已安装好的torch,重新安装最新版本的torch,这是不允许的。在cuDNN官网下载,默认下载的是最新版本的cuDNN,我们这里点击。,== 博文中详细介绍了完整的cuda和cudnn的安装过程==分析: 这是因为yapf 安装的版本不对,需要安装特定的版本。出现训练的loss变化,就说明可以正常训练了。

@bangbang的博客 623

PHP开发人员的8个分布式计算谬论

Seven fallacies of developing distributed computing applications were coined in 1997 by Peter Deutsch. Later, the eighth was coined by James Gosling (the father of Java). Peter Deutsch在1997年提出了七个开发分布...

culi3118的博客 402

Centos 7 Linux 离线安装单机 Kafka:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统上离线安装单机版 Apache Kafka 的完整流程,包括环境准备(JDK 安装)、Kafka 安装包上传与解压、关键配置修改(如监听地址)、ZooKeeper 与 Kafka 服务的启动,以及 Topic 的创建、消息的生产和消费等基础操作。适用于无网络环境下的 Kafka 快速部署与学习,为后续开发或测试提供本地消息队列支持。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1319

uni-app - 在纯 JS 文件中调用自定义弹框组件 / 封装全局 API 调用弹框组件(解决小程序、APP 无法使用 document.body.appendChild 插入组件节点)适配全端

uni-app-在纯JS文件中调用自定义弹框组件/封装全局API调用弹框组件(解决小程序、APP无法使用document.body.appendChild插入组件节点)适配全端,uni-appappendChild怎么向小程序中插入节点,如何开发类似uni.showModal全局组件。h5端可以通过document.body.appendChild挂载,请问app跟微信小程序怎么弄,请问uniapp如何封装全局api调用弹窗组件?uniapp怎么设置所有页面共用的组件Uni

🏆 前端领域优质创作者 1万+

管理分布式计算第一个谬误(网络可靠)的指南

您可能还会质疑,为我们提供可靠的网络是您的云提供商的工作,而我们却为高可用性而向他们付费。隔离壁是为了应对由上游服务的缓慢导致的故障。如果您的规模不足以承担推送的费用,您可以使用 ReactJS 的 RTK 和 Angular 的 NgRx 存储等工具,并不断拉取状态更新。从基础设施的角度来看,最简单的选择是重新部署到服务的最后一个已知的稳定版本。客户端在本地保留状态,浏览器上的 Redux,或无头客户端的 Redis、Memcached(如果您的灵魂允许的话,也可以使用 LinkedHashMap)。

289

PreScan快速入门到精通第二十一讲驾驶员模型之驾驶员在环

请注意,操纵杆的输出角度是以度为单位的,而方向盘执行器希望其输入是以弧度为单位的。当选择一个支持的方向盘时,PreScan会自动将按钮映射到正确的功能上(如换挡),并设置轴的正确范围(如转向角度)。该系统中的所有其他组件都是为了提供正确的按钮映射,并为所选的方向盘设置正确的范围。对于每一个额外连接的控制器,它们的ID会增加一个,例如第二个控制器的设备ID为1,第三个控制器的设备ID为2,等等。由于所有的方向盘最初放在编译表上的设备ID都是0,所以用户应该先进行正确的调整,将每个控制器设置为正确的设备ID。.

小明师兄的博客 1423

分布式系统八大谬论

1969年,美国国防部首度创建起ARPANET,即如今互联网的雏形。而就在同一时期,SWIFT协议则开始用于实现财务转账。作为分布式系统的两大早期实例,二者的出现帮助用户得以更为连续地将单一系统构建为计算集合。       然而,很多对分布式系统有所了解的朋友从未听说过单一计算机的崩溃会影响到整体系统。事实上,这部分问题主要由架构师及配电系统设计人员负责,他们也对此更为了解。       到19

我的博客 1332

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

分布式开发的谬论

Fallacies of distributed computing 在Hbase的官方文档中发现这篇《分布式开发的谬论》文章的链接,看了一下觉的都讲到了每个分布式项目可能会遇到的痛点,很赞。 “分布式计算是很难的,做一个分布式系统需要很多软硬件和网络的技能。你的集群可以会因为各式各样的错误发生故障。比如HBase本身的Bug,错误的配置(包括操作系统),硬件的故障(网卡和磁盘甚至内存) ...

weixin_33682719的博客 60

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

AGAIN: 分布式网络计算八大谬论

早在1994年 SUN 的小伙 Peter Deutsch就提出了分布式计算的七大谬论,后来被 James Gosling等完善: Fallacies of Distributed Computing 1. 网络是可靠的 2. 网络延时为零 3. 带宽是无限的 4. 网络是安全的 5. 网络拓扑不会改变 6. 肯定至少有一个管理员(在值班) 7. 传输开销为零 8. 网络是同

追求卓越 402

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

分布式网络计算八大谬论

早在1994年 SUN 的小伙 Peter Deutsch就提出了分布式计算的七大谬论,后来被 James Gosling等完善: Fallacies of Distributed Computing 1. 网络是可靠的 2. 网络延时为零 3. 带宽是无限的 4. 网络是安全的 5. 网络拓扑不会改变 6. 肯定至少有一个管理员(在值班) 7. 传输开销为零 8. 网络是同

djskl的专栏 1160

企业(分布式)计算十大谬误 (转)

企业(分布式)计算十大谬误     最初Peter Deutsch从J2EE的企业开发中总结了7大谬误,后来,James Gosling在其基础上增加了一条,再后来,Ted Neward又在其上增加了两条,总共为“十大谬误”。这段时间正在看两本书:《Effective Enterprise Java》和《J2EE AntiPatterns》,恰好两本书都提到了“分布式计算的*大谬误”,我在...

lylhelin的专栏 166

分布式系统的八大谬误

这些谬误由Peter Deutsch于1994年提出,后经James Gosling等人补充。

zyl042的博客 218

谈谈 分布式理论基石

分布式计算的八大谬论 网络是可靠的 网络延迟是0 带宽是无限的 网络是安全的 网络拓扑是从不改变的 只有一个管理员 传输成本是0 网络是同构的 不难看出上边说的这些事确确实实存在的问题。但是我们在开发中往往会有意无意的忽略它,希望大家在今后的工作中多多思考下 CAP 理论 Consistency 一致性:指客户端每次操作,不管访问那个节点,要么读到的都是同一份最新数据,要么失败。 一致性强调的是各个节点间的数据一致性,而不是强调的数据完整性 二阶段提交协议,不仅仅是协

Yuan_Li_Shuai的博客 436

揭秘分布式计算系统 8 大认知误区,你知道几个呢?

公众号关注「奇妙的 Linux 世界」设为「星标」,每天带你玩转 Linux !分布式计算的谬误是由L Peter Deutsch和Sun Microsystems公司的其他人所提出的一组断言,他们描述了不熟悉分布式应用程序的程序员总是会做出的一些错误的假设。微服务的大规模普及迫使越来越多的工程师意识到这些错误的认识给他们的系统带来多么大的影响。我们经常会看到一些人在讨论系统设计的时候,忽视或者...

easylife206的专栏 424

分布式系统初学:服务容错

早在1994年,Peter Deutsch就提出了分布式计算的七大谬论,后来被James Gosling(Java之父)等人完善为八大谬论。 ●网络是可靠的。(The network is reliable.) ●网络是没有延迟的。(Latency is zero.) ●带宽是无限的。(Bandwidth is infinite.) ●网络是安全的。(The network is secure.) ●网络拓扑不会改变。(Topology doesn’t change.) ●肯定至少有一个(在值班的)管理员

weixin_56376546的博客 197

NNI HPO API 参考与实践:Trial API、内置 Tuner 与 Assessor 全解析

> 本文以 NNI 仓库中 [docs/source/reference/hpo.rst](https://link.gitcode.com/i/a86770037821ca91266fa49dc5d0e584) 为核心骨架,系统讲解 HPO(超参数调优)场景下的 Trial 端编程接口、全部内置 Tuner 与 Assessor 的算法原理与配置参数,并结合 [nni/trial.py](htt

gitblog_00954的博客 400

【软件架构】Michael Perry关于不可变架构,CAP定理和CRDTs

查尔斯·哈姆伯与迈克尔·佩里谈论了他的书《永恒架构的艺术》。他们讨论的主题包括分布式计算的八个谬误:由L Peter Deutsch和Sun Microsystems的其他人提出的一组断言,描述了新加入分布式应用程序的程序员总是做出的错误假设。其他主题包括Pat Helland的论文“不变性改变一切”、Eric Brewer的CAP定理、最终一致性、位置无关身份和CRDT。他们还讨论了如何将Per...

全网:架构师研究会 397

C++模板进阶:从泛型编程到编译期计算的实战指南

泛型编程是现代编程语言中实现代码复用和类型安全的核心范式,其原理是通过参数化类型来创建可处理多种数据类型的通用代码。在C++中,模板是实现泛型编程的基石,它允许开发者在编译期生成类型安全的代码,从而实现零开销抽象。这项技术的核心价值在于提升代码的通用性、安全性和性能,广泛应用于标准库容器、算法以及高性能计算库的开发。通过掌握非类型模板参数和模板特化等进阶特性,开发者可以将编译器转化为强大的元编程工具,实现编译期策略选择和类型计算。本文聚焦于C++模板的实战应用,深入探讨如何利用非类型模板参数实现编译期优化,

weixin_34122810的博客 399
上一篇: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_ho
下一篇: mysql存储过程动态创建和删除表,比如一次创建1万张表
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值