软件弹性工程与设计
SpringBoot中实现API速率限制的令牌桶算法项目
这个github项目是利用Bucket4j以及 Redis 缓存和 Spring Security 过滤器对私有 API 端点实施速率限制。需要升级到 Spring Boot 3 和 Spring S.
Kubernetes中负载均衡功能简介
Kubernetes 作为容器编排平台,对于解决许多企业采用微服务带来的问题至关重要。公司越来越多地使用微服务跨多个平台管理大量小型容器,如果网络管理和资源分配管理不当,可能会导致性能问题。然而,当可.
Rust中实现 API 速率限制
在本教程中,我们将采用 "滑动窗口 "算法,通过一个动态周期来检查请求历史记录,并使用一个基本的内存哈希表来存储用户及其请求时间。我们还将了解如何使用 tower-governor 为您配置速率限制。.
DevOps 团队的 5 种节省时间和解决问题的技术
DevOps 几乎改变了软件开发的方方面面,使我们从每 12 个月一次大爆炸部署的黑暗时代转变为每天多次发布软件的现实。然而,DevOps专业人员必须克服几个障碍才能在组织内成功实施和维持DevOps.
弹性工程中4种不同的速率限制策略
速率限制器是一种工具,用于监控客户端 IP 可以发送到 API 端点的每单位时间的请求数。如果请求数量超过某个阈值,速率限制器将在一段时间内阻止客户端 IP 发送进一步的请求。关键概念 限制:客户端I.
构建弹性架构的 5 个技巧
如何构建弹性架构和系统?提供五个建议:1、后备措施您需要考虑为您使用的任何外部服务提供后备方案。例如,这可以是支付网关或简单的 URL 缩短器。为什么?如果您依赖这些外部服务并且它们变得不可用,这可能.
使用 Kafka 泳道处理不平衡流量
HubSpot 的客户使用工作流程来自动化其业务流程。工作流由触发器和操作集合组成,触发器告诉工作流何时“注册”要处理的记录,操作集合告诉工作流如何处理这些注册的记录。有数百万个活动工作流程,每天总共.
如何设计高效的幂等性 API
幂等性API意味着无论使用相同的请求体/参数成功调用该API多少次,数据/系统状态都将是相同的。在本文中,我们将提出一种同样关注 API 性能的幂等性机制。实现幂等 API 是建立安全重试机制的解决方.
SpringBoot异步重试机制
探讨 Spring 对异步和重试操作的支持。假设我们需要构建一个简单的微服务来调用下游服务来处理一些数据。1、需要包含spring-boot-starter-web maven 依赖项:<depend.
建立弹性支付系统的 10 个技巧
Shopify Engineering 文章解释了构建弹性支付系统的 10 个最有用的提示和技巧。这是列表:1、设置低超时:他们建议尽可能调查并设置低超时。例如,Ruby 的内置 Net::HTTP .
又是每个程序员都应该知道的:幂等性
在编程世界中,每个开发人员都应该理解许多概念,以便构建高效可靠的系统。其中一个重要的概念是幂等性,它指的是操作或函数的属性,多次应用时产生的结果与仅应用一次时产生的结果相同。这似乎是一个简单的概念,但.
限量抢票系统Ticketmaster的设计问题
最近,Ticketmaster因泰勒·斯威夫特巡回演唱会门票销售时发生重大系统故障而成为新闻。该网站在需求的重压下崩溃,导致粉丝不满,声誉受损。首先,我们将看看Ticketmaster的官方声明,试图.
Netflix按需集群发现的零配置服务网格
在这篇文章中,我们将讨论Netflix对服务网格的采用:一些历史,动机,以及我们如何与Kinvolk和Envoy社区合作开发一个简化复杂微服务环境中服务网格采用的特性:按需群集发现。在云计算的早期几年.
使用 Skupper 实现 Kubernetes 多集群负载均衡
在本文中,您将了解如何利用Skupper在多个 Kubernetes 集群上运行的应用程序实例之间实现负载平衡。我们将使用 Kind 在本地创建一些 Kubernetes 集群。然后我们将使用 Sku.
RESTful API和事件驱动系统中的幂等性
如果您正在构建 REST API 或事件驱动系统,幂等性是您需要考虑的一个非常重要的属性,因为它对于拥有弹性系统至关重要,并且它将帮助您避免不必要的额外副作用。您的借记卡是否曾因同一笔交易被扣款两次?.
解决Kafka消息丢失的一个简单办法
虽然Kafka是一个功能强大的消息系统,但由于网络问题,我们可能会遇到一些不理想的情况。我们也遇到过由于网络问题导致的事件丢失,在试图避免这些丢失的同时,我们也遇到了由于相同原因导致的不同问题。在这篇.
使用 Spring Retry 实现数据库连接重试案例
混沌工程简介
混沌工程最著名的应用也许始于Netflix,当时他们开发了Chaos Monkey。什么是混沌工程?使用混沌工程来提高公共云中工作负载的弹性和可靠性有哪些好处?什么是混沌工程?“混沌工程是对系统进行实.
微服务故障的全局解决:Aperture 简介
Spring Cloud Retry 指南 | baeldung
Spring Retry 提供了自动重新调用失败操作的能力。这在错误可能是暂时的(如瞬时网络故障)时很有用。在本教程中,我们将看到使用Spring Retry 的各种方式:注释、RetryTempla.
用Java构建一个简单的速率限制器
从 Android 的角度用Java构建一个简单的速率限制器:从 Android 的角度使用考虑这样一种情况,您正在编写代码来捕获用户的签名。当他们拖动指针时,您捕获了数千个点。平滑签名可能不需要所有.
Feign Reactive:访问REST API的首选
这是关于如何为第三方 API 集成实现 Feign Reactive 的分步指南。使用Feign Reactive而不是WebClient 作为 REST API 消费客户端。Spring WebCl.
弹性工程设计:Actor模型与微服务架构比较 - ufried
Apache Kafka重试和维护重试事件的顺序
分布式系统中的内存限速器 - ajin
系统架构10大架构特征 - zonito
想象一下你正在买一辆车。您需要其中的哪些基本功能?车辆应该将人从 A 点运送到 B 点。但我们还要检查的是安全性、舒适性、可维护性、易于维修或更好的里程。您也可以寻找电动版本或更快的速度。为什么?为了.
探索 Kafka Producer 的内部结构 - Alex
Adobe Experience Platform Pipeline是一个低延迟、基于 Kafka 的流系统。管道连接数百个 Adobe 组件和系统。我们的 Kafka 集群处理310B msg/.
使用幂等key实现可重试的幂等性API设计 - yeng
今天,没有人能保证你构建的微服务不会遇到麻烦。当问题发生时,我们通常希望最简单的解决问题的方法是重试并再次调用 API。重试可以是您的中间件/API 编排产品处理的一种简单机制。如果记录的性质可以通过.
Golang漏桶算法限速 - ITNEXT
断路器真的有效吗?重试会让情况更糟糕! - brooker
现代分布式系统被设计为允许发生系统中一部分故障,即使不能取悦所有人,也会继续为一些客户提供服务。而断路器的设计是为了将部分故障变成完全故障。这属于:一种机制可能会打败另一种机制。在部署断路器之前,请确.