首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3k卡夫卡主题是否会降低性能?

3k卡夫卡主题是否会降低性能?
EN

Stack Overflow用户
提问于 2021-08-18 13:31:49
回答 1查看 748关注 0票数 0

我有一个Kafka集群(在AWS上使用Aivan ):

Kafka硬件

代码语言:javascript
复制
Startup-2 (2 CPU, 2 GB RAM, 90 GB storage, no backups) 3-node high availability set
  • 我的消费者和卡夫卡经纪人之间的平是0.7ms。

背景群

我有一个主题是:

  • 它包含了大约3000个实体的数据。
  • 实体生命周期是一周。
  • 每周将有不同的3000个实体(在avg上)。
  • 每个实体总共可能有15k到50k的消息。
  • 每秒最多可以有500条消息。

架构

我的团队建立了一个架构,这样就会有一群消费者。他们将解析这些数据,执行一些转换(不需要任何过滤!)然后将最终消息发送回

这意味着我将数据上传回kafka到一个只包含特定实体的数据的主题。

问题

在任何给定的时间,卡夫卡中最多可以有3-4k的主题(每个独特的实体有一个主题)。

  1. 我的卡夫卡能处理好吗?如果没有,我需要改变什么?
  2. 我需要删除一个主题还是有一个好的(很多!!)随着时间的推移,未使用的话题?
  3. 每个消费最终消息的使用者将同时消耗100个主题。我知道kafka客户可以同时使用多个主题,但我不确定这方面的最佳实践是什么。
  4. 请与我分享你的担忧。

要求

  • 请关注这个体系结构的潜在问题,不要谈论替代架构(更少的主题、更多的消费者等等)。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-18 15:31:43

主题的数量本身并不重要,但是每个Kafka主题都是分区的,分区的总数可能会影响性能。

Apache社区的一般性建议每个代理的分区不超过4,000个(这包括副本)。链接的KIP文章解释了如果超出限制您可能面临的一些问题,对于3,000个主题,除非您为每个主题选择一个低分区计数和/或复制因子,否则很容易做到这一点。

为主题选择较低的分区计数有时不是一个好主意,因为它限制了读和写的并行性,导致了客户端的性能瓶颈。

为主题选择较低的复制因子有时也不是一个好主意,因为它增加了失败时丢失数据的可能性。

通常,集群上有未使用的主题是可以的,但是要注意,集群管理所有这些分区的元数据仍然会对性能造成影响,一些操作仍将花费比主题不存在的时间更长的时间。

每个集群也有一个限制,但这要高得多(2000个分区)。因此,通过增加集群的节点数,您的体系结构可能会得到更好的服务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68833421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档