【发布时间】:2017-03-02 19:30:00
【问题描述】:
我们在 DC/OS 1.9 (Mesos) 上以分布式方式部署 API-M 2.1(每个组件、GW、TM、KM 都在自己的 Docker 映像中运行)。
我们无法让网关强制执行限制策略(应该是订阅层级还是应用级策略)。以下是我们迄今为止设法定义的内容:
流量管理器自己完成它的工作:它接收事件流,动态分析它们并将事件推送到 JMS 主题throttledata
网关正确读取消息。 所以基本上我们已经放弃了一个沟通问题。
但是我们发现了两个潜在的问题:
- 在推送到 TM 组件的事件中,appTenant 的值为 null(而不是 carbon.super)- 我们定义了一个租户。
- 当网关收到限制消息时,它决定让消息继续,认为“stopOnQuotaReach”设置为 false,当它设置为 true 时(我们检查了数据库中的值)。
深入研究源代码,我们将这两个问题与一个来源联系起来:上述两个值的值都是从 authContext 读取的,并且显然设置不正确。我们陷入困境并且没有尝试的想法,并且需要一些指示可能是问题的潜在根源和要检查的事情。
有人可以帮忙吗? 谢谢-伊莎贝尔。
【问题讨论】:
-
限制限制是否仅适用于订阅层?或者它不适用于 boh 应用层和订阅层?
-
另外,即使appTenant为null,我们在生成订阅限制键或应用程序级限制键时也不会考虑。因此,它不应该对强制执行节流限制产生任何影响。
-
我们需要检查的一件事是节流决策是否通过JMS到达网关