Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka 卡夫卡高级Vs低级消费者_Apache Kafka - Fatal编程技术网

Apache kafka 卡夫卡高级Vs低级消费者

Apache kafka 卡夫卡高级Vs低级消费者,apache-kafka,Apache Kafka,关于主题和分区,我有以下问题 1) 具有m分区的n主题和nm主题之间有什么区别? 当使用n*m个不同的进程通过m个线程和nm主题访问m分区时,会有区别吗 2) 区分高级和低级消费者的完美用例 3) 如果出现故障(即)消息未送达,我在哪里可以找到Kafka中的错误日志。1)具有m分区的n主题和nm主题之间的区别是什么 每个主题必须至少有一个分区。主题只是一组命名的分区,而分区实际上是数据流。使用Kafka producer的代码通常与分区无关,它只向主题发送一条消息。 默认情况下,producer

关于主题和分区,我有以下问题

1) 具有m分区的n主题和nm主题之间有什么区别? 当使用n*m个不同的进程通过m个线程和nm主题访问m分区时,会有区别吗

2) 区分高级和低级消费者的完美用例

3) 如果出现故障(即)消息未送达,我在哪里可以找到Kafka中的错误日志。

1)具有m分区的n主题和nm主题之间的区别是什么

每个主题必须至少有一个分区。主题只是一组命名的分区,而分区实际上是数据流。使用Kafka producer的代码通常与分区无关,它只向主题发送一条消息。 默认情况下,producer使用循环方法选择用于存储消息的分区,但您可以根据需要创建自定义分区,并根据消息的内容选择分区

如果只有一个分区,则只有一个代理处理主题的消息并将其附加到文件中。 另一方面,如果有和代理一样多的分区,则消息处理是并行的,并且有高达m倍(减去开销)的加速。这假设每个代理都在自己的机器上运行,并且kafka数据存储不在代理之间共享

如果一个主题的分区比代理多,卡夫卡会尝试在所有代理之间平均分配这些分区

卡夫卡的阅读也是如此。如果只有一个分区,则kafka使用者速度受单个磁盘的最大读取速度限制。如果有多个分区,则并行检索来自所有分区(不同代理上)的消息

1a)当使用n*m个不同进程通过m个线程和nm主题访问m个分区时,会有差异吗

您在这里混合了分区和主题,请参见上面我的答案

2) 区分高级和低级消费者的完美用例

高级消费者: 我只想使用卡夫卡作为外部快速持久的FIFO缓冲区,而不用担心太多细节

低层次消费者: 我希望有一个自定义的分区数据消耗逻辑,例如,开始从新创建的主题读取数据,而不需要消费者重新连接到代理

3) 如果出现故障(即)消息未送达,我可以在哪里找到Kafka中的错误日志

卡夫卡使用log4j进行日志记录。它取决于其存储日志的配置(对于生产者和消费者)。
Kafka代理日志通常存储在/var/log/Kafka/

很好的解释。。。对于初学者来说很容易理解。