什么定义了kafka主题的范围

What defines the scope of a kafka topic

我想尝试将 Kafka 用于现有系统,以替换旧的消息协议。目前,我们有多种类型的消息(数百种)用于在约 40 个应用程序之间进行通信。有些是高速异步的,有些是基于 user/events.

的请求

现在看Kafka,它把主题和分区等分开了。但是我对什么构成主题有点困惑。我的应用程序生成的每种类型的消息是否都有自己的主题,允许数百个主题,或者我是否将它们聚集在一起以形成相关的消息类型?如果是第二个答案,应用程序读取一条消息并在其内容不是它所寻找的内容时将其丢弃是一种不好的做法吗?

我也进退两难,单个应用程序(显示器)将有 10 个以上的副本,所有这些副本都获得大量数据(以各种轻量级视频流的形式) ) 并将在每个特定节点上发送用户命令。卡夫卡会是一种足够的沟通方式吗?假设最多10个,但有时这些特定的应用程序可能没有时刻获取视频流的愿望。

第三个也是最后一个问题:我阅读了一些关于消息重播能力的文章。这是否仅在单个主题内,或者重播能力是否可以跨越一系列不同的主题?

Kafka 本身并不关心 "types" 的消息。它知道的唯一类型是字节,这意味着您可以完全灵活地序列化数据集。但是请注意,默认的最大消息大小仅为 1MB,因此 "streaming video/images/media" 可以说是 Kafka 单独使用的错误用例。像 RTMP 这样的协议可能更有意义

Kafka 消费者组水平扩展,而不是响应负载。消费者以他们可以处理的速率轮询数据。如果他们不需要数据,那么他们可以停止,如果他们需要重新处理数据,他们可以独立寻求