默认情况下,Hystrix将执行结果存储在10个1秒窗口桶中。如果传递了一个1秒的窗口桶,将创建一个新的桶,并删除最早的桶。该库将执行结果存储在环形位缓冲区中,没有统计滚动时间窗口。成功的调用存储为0位,失败的调用存储为1位。环形位缓冲区具有可配置的固定大小,并将位存储在长[]数组中,这比布尔数组节省内存。这意味着环位缓冲区只需要一个由16个长(64位)值组成的数组来存储1024个调用的状态。这种断路器的优点是,对于低频和高频后端系统来说,它是开箱即用的,因为当经过时间窗口时,执行结果不会丢失。
我的问题是,当请求在每秒20到150个之间波动时,我如何确定环形缓冲区的最佳大小?如果有人问我同样的问题,我如何证明我选择的数字是合理的?
如果我将环形缓冲区设置为100,那么每秒填满@20个请求将需要5秒,而在高峰时段,填满@20个请求将不到1秒。我不确定是否应该使用像hystrix这样的基于时间的实现,或者是否可以使用Resilience4J来解决这个问题。
完全同意吉姆·加里森的观点。
这种配置将在很大程度上取决于应用程序的需求和行为。在你得到你的主要问题的答案之前
当请求在每秒20到150个之间波动时,如何确定环形缓冲区的最佳大小?
环形缓冲区接口 结构体 struct rt_ringbuffer 环形缓冲区控制块 更多... 枚举 函数 void rt_ringbuffer_init (struct rt_ringbuffer *rb, rt_uint8_t *pool, rt_int16_t size) 初始化环形缓冲区 void rt_ringbuffer_reset (struct rt_rin
环形块状缓冲区接口 结构体 struct rt_rbb_blk rbb 中的块 更多... struct rt_rbb_blk_queue 块队列。这些块在队列中,其 buffer 地址是连续的 更多... struct rt_rbb 环形块状缓冲区,简称 rbb 更多... 枚举 函数 void rt_rbb_init (rt_rbb_t rbb, rt_u
问题内容: 我有一个流时间序列,我有兴趣保留最后4个元素,这意味着我希望能够弹出第一个元素并将其添加到末尾。本质上我需要一个环形缓冲区。 哪个Java集合最适合此用途?向量? 问题答案: 考虑CircularFifoBuffer Apache的Common.Collections。与Queue不同,你不必维护基础集合的有限大小,只要达到极限就可以包装它。 由于以下属性,CircularFifoBu
环形缓冲区在处理异步IO时非常实用。它们可以在一端接收随机长度和区间的数据,在另一端以相同长度和区间提供密致的数据块。它们是Queue数据结构的变体,但是它针对于字节块而不是一系列指针。这个练习中我打算向你展示RingBuffer的代码,并且之后你需要对它执行完整的单元测试。 #ifndef _lcthw_RingBuffer_h #define _lcthw_RingBuffer_h #inc
问题内容: 我试图用一层构建CNN,但是我有一些问题。确实,编译器告诉我 ValueError:检查模型输入时出错:预期conv1d_1_input具有3维,但数组的形状为(569,30) 这是代码 问题答案: td; LR你需要重塑你的数据有一个 空间 维度是有道理的: 本质上重塑如下所示的数据集: 至: 解释和例子 通常,卷积在空间维度上起作用。内核在产生张量的维度上“卷积”。对于Conv1D
是否可以通过注释在Spring Cloud Circuit Breaker上使用Resilience4j?我找不到任何关于它的留档,只有关于通过代码使用弹性4j的示例