当前位置: 首页 > 面试题库 >

kafka的消息存储?

傅玮
2023-03-14
本文向大家介绍kafka的消息存储?相关面试题,主要包含被问及kafka的消息存储?时的应答技巧和注意事项,需要的朋友参考一下

kafka的消息存储在磁盘上,一个kafka topic分为一个或多个partition,每个partition单独存储自己的消息数据

partition将数据记录到.log文件中,为了避免文件过大影响查询效率,将文件分段处理

记录消息到.log文件中的同时,会记录消息offset和物理偏移地址的映射作为索引,提升查找性能;

这个索引并不是按消息的顺序依次记录的,而是每隔一定字节的数据记录一条索引,降低了索引文件的大小

kafka查找消息时,只需要根据文件名和offset进行二分查找,找到对应的日志分段后,查找.index文件找到物理偏移地址,然后查.log读取消息内容

 类似资料:
  • 我使用的是0.9.0.0版本的Kafka,我想在不使用管理脚本Kafka-console-consumer.sh的情况下计算主题中的消息数。 我已经尝试了答案Java“How to get number of messages in a topic in apache kafka”中的所有命令,但都没有结果。有人能帮我吗?

  • 如何使用Apache Kafka生成/使用延迟消息?标准的Kafka(和Java的kafka-client)功能似乎没有这个特性。我知道我自己可以用标准的等待/通知机制来实现它,但是它看起来不是很可靠,所以任何建议和好的实践都很感谢。 找到相关问题,但没有帮助。正如我所看到的:Kafka基于从文件系统的顺序读取,并且只能用于直接读取主题,保持消息的顺序。我说的对吗?

  • 所以我设置了一个汇流Kafka JDBC连接器。首先,我启动一个模式注册表,如 这是schema-registery.properties文件 接下来,我启动一个像这样的独立连接器 connect-avro-standalone.properties是 jdbc-source.properties是 我使用的查询只是为了测试的目的,我要使用的真正查询将实现增量模式,并且将不包含where子句。 我

  • 所以我和我的Kafka消费者之间有了一些恼人的矛盾。我使用“Kafka节点”为我的项目。我创造了一个话题。在一个使用者组中通过2台服务器创建了2个使用者。自动提交设置为false。对于我的消费者获得的每一个mesaage,他们会启动一个异步进程,该进程可能需要1~20秒,当进程完成时,消费者会提交偏移量。我的问题是:在一个senarios中,消费者1得到一个消息,需要20秒来处理。在过程中间,他得

  • 我实现了一个Java使用者,它使用来自Kafka主题的消息,然后将这些消息与POST请求一起发送到REST API。 假设一个消息已经被使用,但是Java类未能到达REST API。消息将永远不会被传递,但它将被标记为已消耗。处理这类案件最好的办法是什么?当且仅当来自REST API的响应成功时,我能以某种方式确认消息吗?