如何根据性能高的内容进行路由?

时间:2019-06-17 10:26:42

标签: apache-nifi apache-minifi

在nifi中,如果我从单个主题听Kafka并基于路由逻辑,它将调用相应的进程组。

但是,在RouteOnContent处理器中,如果我们给出用于检查字符串是否出现的正则表达式,则会影响性能或在根据条件进行路由时如何实现良好的性能。

2 个答案:

答案 0 :(得分:0)

在KSQL /流处理级别将某些内容拆分为不同的主题,并让Nifi读取不同的主题会更有效吗?

答案 1 :(得分:0)

对每条消息的内容运行正则表达式是一种低效的方法,请考虑是否可以将其修改为以下一种方法:

  • 让生产者将必要的元数据写入Kafka标头中,该标头可以在NiFi中使用效率更高的RouteOnAttribute处理器。这仍然是一次消息,但具有吞吐量限制
  • 如果您的消息符合模式,请使用带有QueryRecord方法的NiFi中效率更高的KafkaRecord处理器,这将大大提高吞吐量
  • 如果您无法修改源数据并且涉及到正则表达式逻辑,则在处理下游数据之前,使用小型Kafka Streams应用拆分主题可能会更有效