circuit-breaker相关内容
如果Kafka服务器(暂时)关闭,我的Spring Boot应用程序ReactiveKafkaConsumerTemplate一直尝试连接不成功,从而造成不必要的流量和日志文件混乱: 2021-11-10 14:45:30.265 WARN 24984 --- [onsumer-group-1] org.apache.kafka.clients.NetworkClient : [Con
..
在开发微服务的过程中,是否可以在Spring Boot中同时使用这两个功能? 推荐答案 可以,它们可以一起使用,但并不总是必需的。 正如@tom Redfern所说,断路器是在调用方实现的。因此,如果您向另一个服务发送请求,则应该将这些请求封装到特定于该服务的断路器中。请记住,每个其他第三方系统或服务都应该有自己的断路器。否则,一个系统不可用将影响您通过打开断路器向另一个系统发送
..
我已经实施了波利重试和断路器策略(已封装).当调用失败并且电路为前一个调用打开时,下一个调用再次进入重试并再次击中断路器,而不是仅仅抛出断路器异常.我认为即使使用类型化的客户端,HTTP 客户端也会以某种方式重新创建.我无法弄清楚这个问题.这是代码 启动 public void ConfigureServices(IServiceCollection services){services
..
很抱歉,如果这个问题不适合 SO. 但我试图寻找很多答案. 我正在研究断路器设计模式,据我所知,它用于使您的 API 容错.现在我感到困惑的是, 假设我有调用支付 API 的 API,假设我将电路配置为在 5 个调用连续失败时打开. 现在根据断路器设计,我将在打开电路后路由后续调用以回退方法.假设接下来的 5 次调用,如果 api 在线,我将在第 6 次调用时调用支付 AP
..
TL;DR; 有没有办法根据下游健康状况自动调整 Project Reactor 中元素之间的延迟? 更多详情 我有一个应用程序,它从 Kafka 主题读取记录,为每个记录发送一个 HTTP 请求,并将结果写入另一个 Kafka 主题.从/向 Kafka 读取和写入既快速又容易,但是第三方 HTTP 服务很容易被淹没,所以我使用 delayElements() 和一个属性文件中的
..
我有一个应用程序,它从 Kafka 获取消息并调用目标系统来更新旧的 Oracle 数据库. 我想启用一个场景,如果目标系统停机,将消息留在 Kafka 总线上,并且在给定的时间段内不处理它们.我正在考虑一些基于断路器 Hystrix 的解决方案,但我找不到任何机制来告诉 Spring Cloud Stream“停止"事件侦听.我能想到的唯一另一种选择是,如果断路器打开,将这些消息传输到错误
..
我是 微服务 架构的新手.我发现了很多在同步请求中实现断路器的例子. 但是我们在异步请求流中是否也需要断路器? 解决方案 断路器模式主要适用于同步服务通信.这是为了避免服务因请求而变得不堪重负,并且客户端开始重试请求,从而使情况变得更糟. 在异步、事件驱动的架构中,服务将事件放在代理上,消费者按自己的节奏读取事件 - 因此生产者和消费者解耦所以它不存在与服务之间的同步通信相同的
..
我们使用的是 spring cloude stream 2.0 &Kafka 作为消息代理. 对于目标系统(数据库或第 3 方 API)不可用的情况,我们已经实现了一个可以停止应用程序上下文的断路器,如下所示:当目标系统关闭时停止Spring Cloud Stream @StreamListener 监听 现在在 spring cloud stream 2.0 中有一种方法可以使用执行器来
..
我们的应用程序是通过使用 Hystrix 实现断路器模式以抗脆弱的方式编写的. 整个应用程序是使用测试驱动的实践创建的,但卡在了我们需要通过在方法上配置相同来实现断路器策略的点. 以下是我们使用的示例配置 - @HystrixCommand(commandProperties = {@HystrixProperty(name = "circuitBreaker.enabled", v
..
请帮我找出断路器和隔板模式在 Spring Reactor 应用程序中有用的原因. 由于操作在 Reactor 中将是非阻塞的,并且这两种模式旨在节省对资源(主要是线程)的潜在影响,在什么情况下我可以使我的 Spring Reactor 应用程序中的模式受益.在这一点上,我唯一看到的是,如果请求数量如此之大,以至于将它们保存在内存中,同时等待超时(而不是断路器启动和回退),我们会运行 OOM
..
我正在测试Hystrix CircuitBreaker实施.这是命令类的样子: 公共类CommandOne扩展了HystrixCommand.{私人MyExternalService服务;public static int runCount = 0;public CommandGetPunterUnpayoutExternalBets(MyExternalServoce服务){
..
我有一个中型的Elasticsearch索引(1.46T或〜1e8文档).它运行在4台服务器上,每台服务器在弹性服务器和操作系统之间均分配有64GB的Ram(用于缓存). 我想尝试新的“重要条款",聚合,因此我触发了以下查询... {“查询":{"ids":{"type":"document",“值":["xCN4T1ABZRSj6lsB3p2IMTffv9-4ztzn1R11P_NwT
..
我正在尝试Polly CircuitBreakerAsync,但它没有按我预期的那样工作. 我在这里做错了什么?我希望下面的代码能够完成,并说电路仍处于关闭状态. 使用Polly;使用系统;使用System.Threading.Tasks;公共课程{公共静态无效的Main(string [] args){MainAsync(args).GetAwaiter().GetResult();}静
..
TL; DR; 是否有一种方法可以根据下游运行状况自动调整Project Reactor中元素之间的延迟? 更多详细信息 我有一个应用程序,它从Kafka主题读取记录,为每个记录发送一个HTTP请求,并将结果写入另一个Kafka主题.从Kafka读写数据很容易,但是第三方HTTP服务很容易被淹没,因此我将 delayElements()与属性文件中的值一起使用,这意味着该值不会在
..
我们正在使用Spring Cloude流 2.0 &Kafka作为消息代理. 对于目标系统(DB或第三方API)无法使用的情况,我们已实现了一个断路器,该断路器可停止应用程序上下文,如此处所示:绑定可视化和控件 是否有可能通过代码控制活页夹的生命周期,是否意味着在目标服务器关闭的情况下暂停活页夹,以及在启动时恢复 resume ? 解决方案 对不起,我没看懂你的问题. 您可以
..
我们的集群有3个Elasticsearch数据容器/3个主容器/1个客户端和1个导出器.问题是警报“由于断路异常而导致Elasticsearch未分配的碎片".您可以在以下问题 中对此进行进一步检查 现在,通过进行curl调用http://localhost:9200/_nodes/stats,我发现堆使用率是各个数据Pod的平均值. eleasticsearch-data-0、1和2的
..
我收到警告,指出elasticsearch有2个未分配的分片.我在下面的api调用中进行了收集,以收集更多细节. curl -s http://localhost:9200/_cluster/allocation/explain | python -m json.tool 下面的输出 "allocate_explanation": "cannot allocate
..
我目前正在研究1.6版中的服务网格Istio.数据平面(Envoy代理)由受控平面配置. 当我通过创建目标规则配置断路器并且断路器打开时,客户端sidecar代理是否已经返回503或服务器端sidecar代理? 客户端Sidecar代理是自动将请求路由到服务的另一个可用实例,还是只是将503返回到应用程序容器? 提前谢谢! 解决方案 在日志条目中,您可以检查它们以找出断路器停
..
没有未来,这就是我使用 flatmap 将所有较小的Seq合并为一个大Seq的方法 category.getCategoryUrlKey(id: Int):Seq[Meta] // main method val appDomains: Seq[Int] val categories:Seq[Meta] = appDomains.flatMap(category.getCategoryUrl
..
我有一个应用程序,可以从Kafka获取消息并调用目标系统来更新旧版Oracle DB. 我想启用一种方案,如果目标系统关闭,则将消息保留在Kafka总线上,并且在给定的时间内不对其进行处理.我当时在想一些基于断路器Hystrix的解决方案,但是我找不到任何机制可以告诉Spring Cloud Stream“停止"事件监听.我能想到的唯一其他选择是,如果断路器是断开的,则将这些消息传送到错误/
..