0

我在生产中使用 Kafka。许多服务向其中发送和读取消息。

一切正常,但我在一项服务中遇到了错误。出于一个奇怪的原因,它每秒向 Kafka 发送数百万条消息。

由于这个错误,我的 Kafka 崩溃了。

这不是 Kafka 错误,但我怎样才能保护它免受潜在的洪水影响?

4

3 回答 3

1

升级到 Kafka 0.9 并启用Quotas

于 2016-02-28T01:20:58.780 回答
0

您需要对服务进行一些限制,以免淹没 Kafka。一种选择是使用 Apigee。

于 2015-03-15T07:16:38.990 回答
0

事实上,使用 Apigee,您可以限制响应。这可以通过两种方式完成;

  1. 使用“Spike Arest”,它会随着时间的推移平滑请求,例如,如果您定义每秒的请求数量,它会在毫秒内平滑,并且当每分钟定义的请求数量时,每秒会更平滑。
  2. Qouta 定义了每分钟、每天等的最大请求量。之后请求被拒绝。
  3. Apigee 还提供了“并发费率”政策,可以做到这一点;跟踪并发呼叫的数量,并在发送更多呼叫时拒绝。(HTTP 503)。

您可能会喜欢: http ://apigee.com/docs/api-services/content/comparing-quota-spike-arrest-and-concurrent-rate-limit-policies

此外,如果您想保持自定义,请查看 Volos 或 Apigee 127,这也是 Apigee 创建的一个很棒的开源项目。

希望这可以帮助。

实际上,最后一点;我会解决根本原因;为什么会收到 1mio 请求?或者这是预期的行为?

于 2015-03-17T20:17:15.567 回答