Я использую Nifi-1.8 и в настоящее время работаю над потоками NiFi, которые используют данные из очереди Oracle Weblogic JMS.Применение процессора ConsumeJMS с помощью JndiJMSConnectionFactory.Глядя на код , NiFi создает MessageConsumer для каждого полученного сообщения.
public void consume(final String destinationName, final boolean durable, final boolean shared, final String subscriberName, final String charset,
final ConsumerCallback consumerCallback) {
this.jmsTemplate.execute(new SessionCallback<Void>() {
@Override
public Void doInJms(final Session session) throws JMSException {
final MessageConsumer msgConsumer = createMessageConsumer(session, destinationName, durable, shared, subscriberName);
try {
...
} catch (Exception e) {
...
} finally {
JmsUtils.closeMessageConsumer(msgConsumer);
}
return null;
}
}, true);
}
Исходя из того, что я вижу, это приводит к тому, что nifi открывает новое соединение с сервером jms для каждого сообщения - что мне кажется чрезмерной нагрузкой и создает много ошибок на моих серверах, так как многие изшаги повторной аутентификации кажутся неудачными.
Я нашел здесь другие вопросы , но ответов нет.
Я хотел бы переработать процессор, как @daggett, упомянутый вкомментарии.
Почему процессор каждый раз создает новый MessageConsumer?Этот кусок кода был там, по крайней мере, с nifi-1.1.Я хотел бы понять, была ли за этим причина.