![]() |
1
6
是的,我就是这么做的。一个独立的java应用程序(您可以称其为“java服务器应用程序”)。
如果您想将带有一个标签的邮件与其他标签的邮件区别对待,例如保留期、邮件大小(和 other topic-level settings )那么有一个单独的主题是有意义的,但如果你要有数千个标签,我宁愿不这样做。它可以只是消息中的一个简单字段。你可以有一个主题用于你的指标,然后,当你想添加其他类型的消息时(一旦你看到了好处,你肯定会想这样做),你可以为此创建一个不同的主题。您可以大致将主题视为数据库中的实体,但这是一个相当弱的比较,因为它取决于许多因素,如大小、传入率和类似的东西。没有一刀切的食谱,所以你必须问一个单独的、具体的问题,以及你拥有的所有参数。
分区是Kafka的消费并行机制(它们还促进了冗余,因为每个分区都是跨代理复制的,这取决于您选择的复制因子)。由于分区不能由多个使用者线程使用,所以您需要首先创建更多的分区(并开始使用较少的线程),以便以后可以将线程数增加到分区数。(此限制可能在最新的Kafka版本0.9中被取消。此规则适用于v0.8的低级消费者)。
如果像您所描述的那样发布消息,您将不知道消息将在哪个分区中结束。
这是由生产者端的哈希决定的,默认的哈希机制是随机的(类似于“循环”)。
您可以通过确定将用于散列的属性来控制分区。E、 g.如果您包括
不,分区总是包含大致相等的主题消息子集(如果默认,则使用随机散列)。
消息将被随机使用,因为使用者线程之间没有协调。当然,这是可以理解的,因为这将导致巨大的性能损失。
这取决于消费者群体。同一组中的所有使用者线程总共接收100%的消息(例如,4个使用者线程中的每一个都将从该主题获得25%的消息)。另一方面,如果您有两个不同组的消费者,他们将各自消费该主题中100%的消息。我想你可以从中推断出最后两个问题的答案,对吗? |
![]() |
yershalom · 同一消费群体中具有不同分区数量的不同卡夫卡主题 2 年前 |
![]() |
Sravan Kumar · Apache kafka模式注册表问题 3 年前 |
![]() |
MrSham · 如何确保旧版本0.10.0在卡夫卡中只处理一次 3 年前 |
![]() |
Iheb Mar · 卡夫卡制作人/消费者粉碎每一秒的API调用 3 年前 |
![]() |
Raman · Kafka流:POJO序列化/反序列化 7 年前 |