软件弹性工程与设计

     

经验分享:如何重新再处理Apache Kafka的消息事件? -Tinkoff

2436 1 6K
在外部系统之一不可用的情况下进行事件重新处理是我们业务流程的重要组成部分。希望有这样一个重试机制:如果任何外部系统暂时不可用,该应用程序可以让我们重新处理消息。卡夫卡之前在项目的早期,我们使用IBM .

resilience4j不够用?自制分布式断路器来帮忙 -Nicolas

1709 6K
当服务的多个实例可以调用指定的外部服务,在这些服务实例中都要定制断路策略很浪费,比如调用外部服务一段时间后进行关闭处理逻辑等。他们可以统一共享调用同一个外部服务的统计信息,这样一个调用失败以后,其他服.

建立微服务很容易,但是有几点很难 - James Hickey

1813 1

构建微服务很容易,难点是:-找到微服务之间适当的界限-集成服务(消息传递与RPC)-错误处理(弹性)-Sociotechno社会技术的关注(团队划分界限,组织变更) .

带有Resilience4j断路器的Spring云网关 - rome

4214 1 8K

该文介绍如何利用Spring Cloud网关将resilience4j断路器与网关后面的后端服务结合使用,方法如下: Resilience4j 弹簧启动启动器 Spring Cloud Resilie.

太极taiji:Facebook上的动态流量工程 - copyconstruct/library

1349

将负载平衡建模为约束满足问题,以生成最佳的动态路由表基于社交哈希的动态,可感知连接的路由产品使用时间超过4年点击标题见论文.

使用RSocket进行服务通信的反应性服务 - 负载平衡和可恢复性 | Rafał Kowalski

1172 6K

RSocket可以彻底改变分布式系统中的机器到机器通信。在以下段落中,我们将讨论云中的负载平衡问题以及我们将介绍有助于处理网络问题的可恢复性功能,尤其是在物联网系统中。请注意,本文中提供的代码示例可在.

幂等消费模式 - Pradeep Loganathan

1275

事件驱动架构是一个分布式系统,而分布式系统是天生网络不可靠。这需要在发生故障时计划进行重试,但是重试会导致重复记录,某人帐户中支付两次付款是不可原谅的。为了避免多次处理事件,我们需要应用Exactly.

断路器的回退是被高估的弹性设计 - nurkiewicz

1017 2 4K

断路器中的回退是通过一些预先配置的响应来替换发生的故障,从而使故障的范围受到限制并且对最终用户隐藏。然而,在现实生活中,简单的回退往往过于简单,我建议采用更强大的方法来处理故障,补偿发生的故障。什么是.

如何编写幂等的Bash脚本(函数)? · Fatih Arslan

1891 1 7K

当你你写了一个bash脚本,但是由于错误而运行一半退出了,当您修复了系统中的错误并再次运行这个脚本。但是脚本中的一半步骤会立即失败,因为它们已经作用于您的系统了。要构建弹性系统,您需要编写幂等的软件。.

GitHub - RakeshBhat/rbsample-sprng_camelthrottle:结合SpringBoot和ApacheCamel的REST API速率限制器

1028 1

在此示例中,使用spring web提供REST API访问,使用apache camel集成对数据库(内存中)的调用。 为了限制多余的端点调用或速率限制器,使用apache camel throt.

使用Resilience4J实现断路器模式

2462 6K

断路器是一种模式,可以防止整个架构中单个微服务的故障级联,从而确保系统具有弹性。该模式可以通过像Hystrix或Resilience4j这样的代码库实现,或者通过底层基础设施来实现,例如使用Istio.

介绍Spring Cloud断路器

2636 2 7K

当使用微服务架构来构建我们的应用程序时,在服务中最终会得到一个非常复杂的依赖树。如果依赖关系树中的服务遇到导致其开始缓慢响应的问题,则最终会形成一系列问题,这些问题会使依赖关系树级联起来。随着越来越多.

使用Spring Boot + Resilience 4j实现断路器

4648 2 9K
Resilience 4j提供以下功能。 断路器 RateLimiter 舱壁 重试 高速缓存 TimeLimiter 如果您打算在Spring Boot中使用它,可以使用Starter。请注意,Sp.

Java开发人员的反应编程介绍 - Fernando Almeida

1200 1

不可否认的是,在Dev(和Ops最近)领域出现的数千项创新中,讨论最多的主题之一是反应式编程。新的FW框架不断推出,例如ReactiveX(RxJava)的Java语言的实现,最近推出的带有反应式编程.

一篇文章概括Spring Cloud微服务教程

1969 2 22K

现在流行的是Spring Cloud基于NetFlix解决方案提供的解决方案。那么让我们来演示如何使用它。原文来自tomask79,点击标题见原文!1. 注册中心基于Spring Cloud的Micr.

2018年关于无服务器含义的几个观点 - Subbu的博客

989 4K

我们需要几乎瞬时的资源弹性,而不必预先分配资源或支付超出需要的资源。我们还希望将所有运行最佳实践融入运行时,以免我们担心代码运行得几乎是低级自动化,低操作性和低健壮性,这是近十年来云计算最基本的两项追.

Facebook是如何防止消息系统在新年前夕发生崩溃?

1006 1 2K

这是一篇来自IEEE Spectrum的文章,Facebook的Messenger的13亿用户会在新年前夜集中发送的消息,比如新年快乐等祝愿,这种发送量比一年中任何其他日子都多得多。如果一切顺利,这些.

Grab是如何设计弹性系统:断路器

783 8K

Grab是东南亚(SEA)领先的交通平台,截至2017年5月,Grab平台每天处理230万次乘车。本文重点介绍实现断路器的使用案例,包括与断路配置相关的不同选项。但正如恶劣天气不可避免且通常难以预测一.

Netflix OSS和Spring Boot全面融合

1517 1 2K

2007年,Netflix开始了走向在云中全面运营的漫长道路。Netflix的大部分后端和中端应用都是使用Java构建的,Netflix工程部门构建了很多基于云的架构库和系统 ,比如用于负载平衡的Ri.

用断路器驯服数据质量

745 2K

在微服务架构中使用断路器模式,在出现数据质量问题时,断路器会打开,防止低质量数据传播到下游进程。结果是报告中的低质量数据将在某个时间段内丢失,但如果存在,则保证肯定是正确的。本文描述了实施和部署断路器.

微服务断路器Istio与Hystrix比较

2334 2 8K
无可否认,在过去几年中,像Docker和Kubernetes这样的技术,彻底改变了我们对软件开发和部署方式。断路器模式是在微服务架构中广泛采用的那些模式之一。我们将比较实现它的两种不同方法的优缺点:H.

Java EE的断路器API设计

854 8K

如何使用Java EE API,MicroProfile或某些Java EE扩展实现不同的弹性方法,例如断路器,隔板或背压?此外,企业Java弹性方法如何与Kubernetes和Istio等新的云原生.

使用resilience4j-retry实现函数调用重试

2859 5K

Resilience4j中有一个特殊模块(Resilience4j -Retry),它是为Java8和函数式编程设计的容错库,它是具有最小依赖性的轻量级库(主要是vavr) 当你重试时,有很多例子: .

Resilience4j是专为Java8和函数式编程设计的容错库

1822

Netflix OSS的Hystrix替代品,Resilience4j是一个轻量级容错库,受Netflix Hystrix启发,但专为Java 8和函数式编程而设计。轻量级,因为库只使用Vavr(以前.

断路器Netflix OSS Hystrix和Istio的Envoy比较

2159 1 7K

当我们构建微服务架构时,我们总会通过网络进行更多的调用。但是构建冗余、弹性的分布式系统是一个难题,它需要一个智能的、应用程序感知的负载平衡。Matt Klein最近写了一篇关于现代负载平衡的精彩文章,.

一步步使用Docker设置Node.js

1079 8K

了解如何在Docker容器中设置Node JS: 有一个可运行工作的NodeJS应用程序 通过确保进程在出错时不退出,使节点应用程序具有弹性 通过在代码更改时自动重新启动服务器,使Node应用程序易于.

Spring Cloud Netflix Zuul中的速率限制

1866 8K

Spring Cloud Netflix Zuul是一个包含Netflix Zuul的开源网关。它为Spring Boot应用程序添加了一些特定功能。不幸的是,开箱即用不提供速率限制。除了Spring.

在Spring Cloud中使用OPENFEIGN技巧与最佳实践

1 16896 5 13K

与单片应用程序相比,分布式系统中的服务在多台计算机上运行。为了让这些服务相互交互,我们需要某种进程间通信机制。在OpenFeign的帮助下,我将解释如何启动对另一个服务的同步调用。 OpenFign是.

Envoy服务网格如何减轻级联故障?

1514 1 3K

级联故障是高吞吐量分布式系统中不可用的主要原因之一。在过去的四年中,Lyft已从单片架构转变为数百种微服务。随着微服务数量的增加,由于级联故障或意外内部拒绝服务导致的中断次数也在增加。今天,这些故障情.

应付网络抖动等临时故障的重试策略

3000 9K

REST调用或同步是服务器之间通讯的经常方式,在没有分布式事务机制保障情况下,需要我们开发人员手工进行重试,重试几次失败后进行业务回退操作,重试非常重要,容易造成网络堵塞,引入断路器又过于重量,完善重.