在一个API捆绑包中,我们有3个不同的流(例如,流A,流B和流C),它们都引用相同的名为QuotaLimitPolicy的配额策略。他们真的为给定标识符使用单独的计数器吗?
Flow A is executed -> QuotaLimitPolicy is executed. Result: "A counter" = 1
Flow B is executed -> QuotaLimitPolicy is executed. Result: "B counter" = 1
Flow A is executed -> QuotaLimitPolicy is executed. Result: "A counter" = 1 +1 = 2
Flow C is executed -> QuotaLimitPolicy is executed. Result: "C counter" = 1
Flow A is executed -> QuotaLimitPolicy is executed. Result: "A counter" = 2 +1 = 3
更一般而言,除了标识符之外,是什么使配额计数器与众不同?
例如,在下面的1个API捆绑包示例中,是否真的维护了3个单独的计数器?
Flow A is executed -> QuotaLimitPolicy is executed. Result: "A counter" = 1 Flow B is executed -> QuotaLimitPolicy is executed. Result: "B counter" = 1 Flow A is executed -> QuotaLimitPolicy is executed. Result: "A counter" = 1 +1 = 2 Flow C is executed -> QuotaLimitPolicy is executed. Result: "C counter" = 1 Flow A is executed -> QuotaLimitPolicy is executed. Result: "A counter" = 2 +1 = 3
否,仅维护1个。在捆绑软件中,对相同策略的所有引用都使用相同的计数器。在上面的示例中,QuotaLimitPolicy实际上是给定标识符的单个计数器。因此,对于单个标识符(例如,client_id = 10.10.10.10),上面的链将产生一个值为5的单个计数器,每个QuotaLimitPolicy执行一次。
更一般而言,除了标识符之外,是什么使配额计数器与众不同?
区别在于每个API捆绑包的策略名称级别。如果要为同一捆绑包中的各种流创建单独的计数器,则需要创建具有不同“ name =”属性的单独策略。此外,我不相信我可以使用配额策略在给定的环境中跨多个API包共享一个配额计数器。
这些不是好事还是坏事,而是,我想引起人们的注意,以便在解决方案设计中考虑这些问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句