卡夫卡在什么情况下会溢出?

时间:2018-08-20 19:47:29

标签: apache-kafka

我正在测试一个POC,该数据将从50多个服务器从UDP端口发送到kafka客户端(将使用UDP-kafka桥)。每台服务器每秒生成2000条消息,这对所有50多个服务器每秒总计100K +消息。我的问题是

  1. 如果kafka无法接收所有这些消息,将会发生什么? 这会在我的50多台服务器上创建积压吗?
  2. 如果我有一个kafka集群,如何确定哪个服务器向哪个代理发送消息?

1 个答案:

答案 0 :(得分:1)

1)这取决于您“无法”摄取的含义。如果您认为这是网络的瓶颈,那么在尝试生成某些消息时可能会超时。如果您将retries documented here设置为默认值(0)以外的其他值,它将尝试多次发送该消息。您还可以自定义request.timeout.ms,其默认值为30秒。如果您的意思是磁盘空间,则代理可能会崩溃。

2)您以回旋处的方式进行操作。当您创建具有N个分区的主题时,代理将在当时使用最少的服务器上一一创建这些分区。这意味着,如果您有10个代理,并且创建了10个分区主题,则每个代理应收到一个分区。现在,您可以指定向其发送消息的分区,但不能指定该分区将位于哪个代理。创建分区后,可能会发现分区位于哪个代理上,因此您可以创建一个分区到代理的映射,并使用该映射来选择要发送给哪个代理。

相关问题