繁体   English   中英

如何在卡夫卡和风暴的背景下实现多租户?

[英]How to achieve multi-tenancy in the context of Kafka and storm?

在卡夫卡和风暴背景下构建多租户应用程序的最佳实践是什么?

例如:为每个租户创建主题并使用多主题spout(使用通配符)。

我认为每个租户的话题都是正确的选择

命名约定可能是这样的: topic_base_name_tenant_id

原因是:

  1. 它允许每个租户灵活配置(如前面提到的@Sebastian)。
  2. 更清晰的逻辑分离。

现在让我们说我们将使用不同的方法。 例如,每个租户的分区。 这可能有问题,因为:

  1. 您将并行度级别限制为租户数量。
  2. 添加新租户,结果添加新分区→重新发布旧消息(默认分区算法为:message_key%partition_size)。

有时,每个应用程序可能需要多个主题。 在这种情况下,您可以遵循以下主题命名约定:topic_base_name_tenant_id。 因此,对于给定的基本主题,您将拥有与租户数量一样多的主题

不要将我的答案视为“最佳实践”,因为我不是Kafka专家,但如果它有所帮助:我们遇到了类似的设计方案(一个Kafka端点可供多个团队使用,作为事件创建的中心点,路由)。 在考虑了不同的选择之后,我们决定了你的建议:每个应用程序有一个主题(你可以说是租户),根据应用程序的需要定制主题(分区,限制等)。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM