软件弹性工程与设计

     
  • PostgreSQL中利用驱动程序实现故障转移

    11 8K

    假设我们已经建立了PostgreSQL双向复制 ,最好检查一下中断的情况,以及如何利用 PostgreSQL 驱动程序的本机故障转移功能。我们将冲突解决策略更改为last_update_wins。这样.

  • 分布式快照:Monkey-Lamport协议

    15 4K

    这篇文章讨论了Chandy-Lamport协议。这篇文章由Federico Ponzi于2024年5月30日发布,并在2024年6月3日进行了最后更新。文章内容涵盖了分布式快照试图解决的问题、它的应用.

  • Java 中使用 Failsafe 实现容错

    55 12K

    在本文中,我们将探索Failsafe库,并了解如何将其合并到我们的代码中,以使其对故障情况更具弹性。什么是容错?无论我们将应用程序构建得多么好,总会有可能出错的地方。通常,这些都是我们无法控制的——例.

  • 高可用高可靠系统设计中的重试机制

    64 5K

    重试机制是许多现代软件系统的关键组件。它允许我们的系统自动重试失败的操作,以从暂时性错误或网络中断中恢复。通过自动重试失败的操作,重试机制可以帮助软件系统从意外故障中恢复并继续正常运行。今天,我们就来.

  • 使用 MaxScale 实现数据库的高可用性和弹性

    45

    在本文中,通过 Docker Compose 运行的实际演示来了解数据库 (MariaDB) 的高可用性和弹性。关键任务应用程序需要高可用性。高可用性的目标是为用户提供对服务或资源的一致访问,最大限度.

  • Spring Boot中@Retryable重试教程

    89 12K

    在不断连接的分布式系统世界中,应用程序经常面临短暂故障的困扰。这些意外的问题(例如网络故障或临时数据库中断)可能会导致合法操作失败,尽管一切正常。传统上,处理这些暂时性故障意味着繁琐的错误处理代码,其.

  • SpringBoot中实现API速率限制的令牌桶算法项目

    108 4K

    这个github项目是利用Bucket4j以及 Redis 缓存和 Spring Security 过滤器对私有 API 端点实施速率限制。需要升级到 Spring Boot 3 和 Spring S.

  • Kubernetes中负载均衡功能简介

    81 5K

    Kubernetes 作为容器编排平台,对于解决许多企业采用微服务带来的问题至关重要。公司越来越多地使用微服务跨多个平台管理大量小型容器,如果网络管理和资源分配管理不当,可能会导致性能问题。然而,当可.

  • Rust中实现 API 速率限制

    134 10K

    在本教程中,我们将采用 "滑动窗口 "算法,通过一个动态周期来检查请求历史记录,并使用一个基本的内存哈希表来存储用户及其请求时间。我们还将了解如何使用 tower-governor 为您配置速率限制。.

  • DevOps 团队的 5 种节省时间和解决问题的技术

    109 2K

    DevOps 几乎改变了软件开发的方方面面,使我们从每 12 个月一次大爆炸部署的黑暗时代转变为每天多次发布软件的现实。然而,DevOps专业人员必须克服几个障碍才能在组织内成功实施和维持DevOps.

  • 弹性工程中4种不同的速率限制策略

    80 11K

    速率限制器是一种工具,用于监控客户端 IP 可以发送到 API 端点的每单位时间的请求数。如果请求数量超过某个阈值,速率限制器将在一段时间内阻止客户端 IP 发送进一步的请求。关键概念 限制:客户端I.

  • 构建弹性架构的 5 个技巧

    115 2K

    如何构建弹性架构和系统?提供五个建议:1、后备措施您需要考虑为您使用的任何外部服务提供后备方案。例如,这可以是支付网关或简单的 URL 缩短器。为什么?如果您依赖这些外部服务并且它们变得不可用,这可能.

  • 使用 Kafka 泳道处理不平衡流量

    205 3K

    HubSpot 的客户使用工作流程来自动化其业务流程。工作流由触发器和操作集合组成,触发器告诉工作流何时“注册”要处理的记录,操作集合告诉工作流如何处理这些注册的记录。有数百万个活动工作流程,每天总共.

  • 如何设计高效的幂等性 API

    146 2K

    幂等性API意味着无论使用相同的请求体/参数成功调用该API多少次,数据/系统状态都将是相同的。在本文中,我们将提出一种同样关注 API 性能的幂等性机制。实现幂等 API 是建立安全重试机制的解决方.

  • SpringBoot异步重试机制

    151 2K

    探讨 Spring 对异步和重试操作的支持。假设我们需要构建一个简单的微服务来调用下游服务来处理一些数据。1、需要包含spring-boot-starter-web maven 依赖项:<depend.

  • 建立弹性支付系统的 10 个技巧

    230

    Shopify Engineering 文章解释了构建弹性支付系统的 10 个最有用的提示和技巧。这是列表:1、设置低超时:他们建议尽可能调查并设置低超时。例如,Ruby 的内置 Net::HTTP .

  • 又是每个程序员都应该知道的:幂等性

    167 2K

    在编程世界中,每个开发人员都应该理解许多概念,以便构建高效可靠的系统。其中一个重要的概念是幂等性,它指的是操作或函数的属性,多次应用时产生的结果与仅应用一次时产生的结果相同。这似乎是一个简单的概念,但.

  • 限量抢票系统Ticketmaster的设计问题

    761 3K

    最近,Ticketmaster因泰勒·斯威夫特巡回演唱会门票销售时发生重大系统故障而成为新闻。该网站在需求的重压下崩溃,导致粉丝不满,声誉受损。首先,我们将看看Ticketmaster的官方声明,试图.

  • Netflix按需集群发现的零配置服务网格

    393 3K

    在这篇文章中,我们将讨论Netflix对服务网格的采用:一些历史,动机,以及我们如何与Kinvolk和Envoy社区合作开发一个简化复杂微服务环境中服务网格采用的特性:按需群集发现。在云计算的早期几年.

  • 使用 Skupper 实现 Kubernetes 多集群负载均衡

    532 1 4K

    在本文中,您将了解如何利用Skupper在多个 Kubernetes 集群上运行的应用程序实例之间实现负载平衡。我们将使用 Kind 在本地创建一些 Kubernetes 集群。然后我们将使用 Sku.

  • RESTful API和事件驱动系统中的幂等性

    477 3K

    如果您正在构建 REST API 或事件驱动系统,幂等性是您需要考虑的一个非常重要的属性,因为它对于拥有弹性系统至关重要,并且它将帮助您避免不必要的额外副作用。您的借记卡是否曾因同一笔交易被扣款两次?.

  • 解决Kafka消息丢失的一个简单办法

    794 6K

    虽然Kafka是一个功能强大的消息系统,但由于网络问题,我们可能会遇到一些不理想的情况。我们也遇到过由于网络问题导致的事件丢失,在试图避免这些丢失的同时,我们也遇到了由于相同原因导致的不同问题。在这篇.

  • 使用 Spring Retry 实现数据库连接重试案例

    515 2K
    一个金融应用程序:当客户发送请求时,使用客户端的用户ID从第三方服务获取他们的账户信息,保存交易并更新缓存中的详细信息。尽管整个流程看似简单,但每个下游系统都不可靠。我们必须在每个层上实现重试,而且我.
  • 混沌工程简介

    801

    混沌工程最著名的应用也许始于Netflix,当时他们开发了Chaos Monkey。什么是混沌工程?使用混沌工程来提高公共云中工作负载的弹性和可靠性有哪些好处?什么是混沌工程?“混沌工程是对系统进行实.

  • 微服务故障的全局解决:Aperture 简介

    693 11K
    在处理微服务系统中的故障时,一直使用负载卸载和断路器等本地化缓解机制,但它们可能不如更全球化的方法有效。这些本地化机制在防止单个服务过载方面很有用,但它们在处理涉及服务之间交互的复杂故障时不是很有效,.
  • Spring Cloud Retry 指南 | baeldung

    473 1 4K

    Spring Retry 提供了自动重新调用失败操作的能力。这在错误可能是暂时的(如瞬时网络故障)时很有用。在本教程中,我们将看到使用Spring Retry 的各种方式:注释、RetryTempla.

  • 用Java构建一个简单的速率限制器

    996 2K

    从 Android 的角度用Java构建一个简单的速率限制器:从 Android 的角度使用考虑这样一种情况,您正在编写代码来捕获用户的签名。当他们拖动指针时,您捕获了数千个点。平滑签名可能不需要所有.

  • Feign Reactive:访问REST API的首选

    3204 8K

    这是关于如何为第三方 API 集成实现 Feign Reactive 的分步指南。使用Feign Reactive而不是WebClient 作为 REST API 消费客户端。Spring WebCl.

  • 弹性工程设计:Actor模型与微服务架构比较 - ufried

    1847 1 8K
    弹性有点像安全性:它有助于在某些事情没有按预期进行时不至于损失钱财。它也有一个概率成分:因为意外事件和失败只发生在一定的概率下。它也有一个间接的组成部分:如果你的IT系统过于频繁地出现故障,将会导致次.
  • Apache Kafka重试和维护重试事件的顺序

    1600 7K
    重试非常重要,尤其是在微服务系统中,这些服务必须经常协作才能处理请求。如果一个服务只中断了几秒钟会发生什么?其他服务应该在放弃之前向客户抛出错误或重试多次。举个简单的例子:通过http链式调用的服务:.