当前位置: 首页 > 知识库问答 >
问题:

Apache Flink,线程比Kafka分区多

白禄
2023-03-14

数据流很简单

Kafka-

“一些逻辑”是这里的瓶颈,所以我想使用更多的线程/任务来提高吞吐量,而不是增加kafka分区(目前为3个)。输入和输出主题之间的顺序在这里并不重要。

使用Apache Storm可以轻松完成。我可以为一些逻辑增加螺栓的并行度。如何使用Flink做到这一点?更普遍的问题是,是否有任何简单的方法可以在Flink的不同阶段使用不同的并行度?

共有1个答案

艾骏喆
2023-03-14

这在Flink很简单。您可以使用setParallelism()方法指定每个操作符的并行性:

DataStream<String> rawEvents = env
  .addSource(new FlinkKafkaConsumer010("topic", new SimpleStringSchema(), props));

DataSteam<String> mappedEvents = rawEvents
  .flatMap(new Tokenizer())
  .setParallelism(64); // set parallelism to 64
 类似资料:
  • 我有一个有3台机器的Kafka集群。和一个有6个分区(每台机器2个分区)的主题。当我启动一个有6个使用者线程并且属于一个组的使用者应用程序时。我知道一个使用者线程将被分配一个分区。我想知道的是:使用者线程的任务将在分区所在的机器上运行?或者将运行在应用程序被SRARD的机器上?

  • 我对Apache Kafka是新手,我试图理解以下两个方面的区别: 创建属于同一组id的两个使用者,这些使用者来自同一主题的两个分区。 用两个线程创建一个使用者,这些线程来自同一主题的两个分区。 在第一种方法中,我实际上理解的是,每个使用者将只使用与之“相关”的分区的消息,因为这两个使用者属于同一个组。 因此,在下面的示例中,可能会发生一些不同的情况: Thread1使用AAAA和CCCC/Thr

  • 我使用的是Kafka流,具有无状态的简单处理器拓扑结构。 我有一个主题,有100个分区,有2台机器,每台机器有50个线程,运行同一个流媒体应用程序,因此最终我将在它们之间进行1-1映射。 主题中的消息已是键控消息。 我有一个逻辑约束,一旦线程连接到一个或多个分区,它应该继续处理这些分区(当然,直到重新启动发生,它会重新洗牌) 我从日志中看到线程反复(重新)加入消费者组。 我的问题,kafka 流

  • 问题内容: 如何区分正在运行的Java线程和本机线程? 在Linux中,每个子进程都有一个父进程,他们说0是所有进程的父进程,所有分叉的Java线程中都会有一个父线程吗? 我如何知道哪个Java线程与OS线程相关(如果Java线程派生了本机进程线程)。 Java线程和OS线程有任何命名约定吗? 可以从另一个Java代码中挂起或杀死正在运行的Java线程吗? 问题答案: 在Linux上,Java线程

  • 假设答案是,是的,Kafka不会再平衡,那么有什么解决方案可以让Kafka在各种情况下平衡

  • 我想把线切成百分比。例如: -我的测试计划 -注册线程(此任务应为) -登录线程(此任务应为@) -搜索线程(此任务应为0) -添加新主题(此任务应为) 我怎么做这个分区? 谢谢