• 如果你想成为一名影响力的员工/首席工程师,请放下编译器,学习弹性工程!是的,毫无疑问,深度编译器工作原理可以对软件世界产生巨大影响,但这是一个专业,通常对雇用你的公司影响很小!还需要进一步学习系统理论。点击标题见弹性工程论文(https://github.com/lorin/resi
  • 在分布式系统领域,回退策略是最难应对的挑战之一,对于时间敏感的服务来说尤其如此。更糟糕的是,不良的回退策略可能需要很长时间(甚至数年)才能产生影响,而优质策略与不良策略之间的差异并不明显。本文将重点讲述回退策略如何导致更多问题,且问题的出现速度比修复速度更快。我们将提供一些示例,说明回退策略
  • 我们生活在一个不完美的世界里,失败是不可避免的。我们依赖的系统迟早会失败。我们无法采取任何措施来阻止它,但我们有能力减轻级联故障。我们只需要在我们的工具箱中添加一些工具。 超时必须了解任何资源池都可能耗尽,我们的责任是防止这种情况发生 icon
  • 如果您正在实施微服务,那么您很可能正在调用 HTTP 端点。使用 HTTP 调用,很多事情都可能出错。经验丰富的开发人员对此进行计划并进行设计,而不仅仅是快乐的道路。一般来说,容错包括以下特征: 重试 暂停 断路器 倒退 速率限制器以避免服务器 icon
  • 这是 T20 世界杯赛季,我们想为我们的用户建立一个测验系统,用于短期预言预测。在比赛开始时要求用户预测场景,最后,主持人将提交所有预测场景中实际发生的情况。评分将根据谁回答正确以及回答所花费的时间进行。鉴于我们系统的规模,我们估计可能有 5 万人参与测验。所以我们的目标是为100 icon
  • 示例是:向经过身份验证的用户显示产品页面,下图显示了在这种情况下如何执行请求。 icon
  • 这是一个基于Figma 工程团队的博客文章构建的简单速率限制器。有关实际算法的 icon
  • 本文介绍了fail-fast 原理、它的优点、如何应用它以及我的个人经验。尽管看起来违反直觉,但快速失败会使您的应用程序更加健壮。使用快速失败原则,错误和故障会更快出现,这使得它们更容易修复。如果本文启发您在代码库中应用快速失败原则,您可以立即开始使用它。即使您将该原则应用于单个文件 icon
  • 您的公司拥有一支才华横溢的站点可靠性工程师 (SRE) 团队来创建可扩展且高度可靠的软件系统,以最大限度地减少错误的影响。他们将处理客户问题,花时间随叫随到,并通过人工干预提供帮助。在与客户端错误作斗争时,它们是您的前线防御系统。但重要的是要记住,无论您的 SRE 多么出色,在开发过 icon
  • 您编写了一个 bash 脚本,但由于错误而中途退出,您修复系统中的错误并再次运行脚本。但是脚本中的一半步骤会立即失败,因为它们已经应用于您的系统。要构建弹性系统,您需要编写幂等的软件。 什么是幂等性?幂等脚本可以被多次调用,每次调用都 icon
  • 在这个微服务世界中,我们总是强调通过 API/服务网关层传递任何 HTTP 请求,该层连接多个微服务,并有一个最低要求,即记录每个服务的所有请求和响应以获得更清晰的可见性。我们可以考虑在以下场景中编写我们的反向代理层。 1.假设具有API服务像“PHP”或“Pytho icon
  • 重试功能是 Spring Batch 模块的一部分。从 2.2.0 开始,此功能从 Spring Batch 中提取出来并作为一个单独的模块进行维护。要在 Spring 应用程序中启用此功能,请将此依赖项包含到您的 maven pom.xml 中。 icon
  • 系统弹性是组织、硬件和软件系统减轻故障或损失的严重性和可能性、适应不断变化的条件并在事后做出适当响应的能力。在这篇文章中,我将介绍以下系统弹性模式: 自适应响应 卓越的监控 协调弹性 异构系统 动态重新定位 必要的可用性 icon
  • 软件架构师的当务之急之一是保护API和服务端点免受有害事件(例如拒绝服务攻击,级联故障或资源过度使用)的危害。速率限制是一种用于控制使用API​​或服务的速率的技术,它反过来可以保护您免受可能导致服务突然停止的这些事件的侵害。在分布式系统中,没有比集中配置和管理使用者与API交互的速率更好的 icon
  • 顾名思义,Sentinel是微服务的强大后卫。它提供了流量控制,并发限制,电路中断和自适应系统保护等功能,以确保其可靠性。这是阿里巴巴集团积极维护的开 icon
  • 大约一年前,我们GitHub迁移了一个旧的速率限制器,以提供更多的流量并适应更具弹性的平台体系结构。我们采用了带有客户端分片的复制Redis后端。最终,效果很好,但是我们在此过程中吸取了一些教训。 Memcached问题< icon
  • 随着我们逐渐利用云计算,这变得越来越具有挑战性。由于各个组件都面临着被称为“灰色失败”的新挑战,因此我们创建强大解决方案的方法仍然面临压力 。在出现灰色故障时,服务器或网络的一部分不会快速失败,而是开始缓慢运行。慢跑比快跑更糟。慢速组件有时以低于正常速度1%的速度运行,可能很健康,可以说“我 icon
  • 使用resilience4j的库和Spring Boot设计高弹性的微服务。微服务本质上是分布式的。当您使用分布式系统时,请始终记住这一第一法则- 网络中可能发生任何事情。处理任何此类意外故障可能很难解决。故障可能是任何东西-应用程序,硬件或网络等。系统从故障中恢复并保持正常 icon