我想知道ProcessorContext.schedule是否是线程安全的,以便我可以生成新线程来执行Punctuator回调?
另外,如果使用者仅使用1个分区,但是我们设置了num.stream.threads=2
。这会自动为调度程序生成新线程吗?
稍作尝试后,我发现答案可能是“否”。 那么,为调度程序线程安全生成新线程的推荐方法是什么?
答案 0 :(得分:1)
注册标点符号不会产生新线程。使用的线程数仅由num.stream.threads
配置决定。因此,如果您注册标点符号,则标点符号将在与拓扑相同的线程上执行,因此是线程安全的。
如果配置的线程多于可用的输入主题分区,则某些线程将不会分配任何工作,因此它们将不会执行任何标点符号。