2015-02-08 2 views
0

Я хотел бы знать, выполняются ли партии трезубца параллельно, т. Е. Несколько партий могут работать одновременно?Одновременно обрабатываются партии бури трезубца?

Кроме того, у меня есть несколько вопросов, которые слишком малы для публикации по отдельности. Если они достаточно велики, не стесняйтесь комментировать их отдельно.

  1. Что делать, если обработка только конкретный кортеж в пакете провалена?

    Затем пакет будет воспроизведен, что приведет к переработке кортежей, которые были успешно обработаны ранее? Например, количество слов, в котором каждый кортеж содержит слово, но только несколько кортежей были успешно подсчитаны? Например, если есть три слова, называемых человек, а количество показывает только 2, что означает, что один кортеж не обработан?

  2. Только в этом tutorial, предыдущая TXID хранится. Как насчет предыдущих идентификаторов транзакций?

    Например, имеется три партии 1,2,3,4. Теперь, после партии # 1, # 2 выполняются и партия № 1 воспроизводится. Тогда txid будет равно 2, так как последняя обработанная партия является партией №2, и нет способа распознать, что пакет 1 уже обработан или нет. Если это так, то партии должны быть выполнены по порядку. Это означает, что до тех пор, пока партия № 1 не будет успешно завершена, партия №2 не может быть выполнена. Если это так, то где параллелизм при выполнении партий?

  3. Что делать, если только определенная функция не выполнена должным образом для партии в топологии?

    Например, у меня есть две функции, одна из которых заключается в том, чтобы сохранить сообщение в базе данных, а другое - в очереди kafka. И здесь упорство в базе данных является успешным, однако нажатие на очередь kafka потерпело неудачу из-за некоторых сбоев узлов (скажем, например). Тогда я хочу только функцию, которая толкает в очередь kafka, которая будет выполнена для этой конкретной партии. Есть ли способ сделать в трезубец? Для этого мне нужно будет хранить не только txid, но и список функций, которые должны обрабатываться для этого txid. Как это можно сделать?

ответ

0

Насколько я понимаю:

  1. Любая неудача считается стенает партии, и он будет переигран на носик. Состояние транзакции сохраняет значение и идентификатор транзакции от последней операции. Если подсчет «человек» не удался, его txid будет меньше текущего txid и он должен добавить данные этих партий к сохраненному значению. В противном случае он может игнорировать повтор, потому что он знает, что данные из этой партии уже подсчитаны для этого ключа.

  2. Государственные операции обрабатываются в строгом порядке txid, но только компонентами stateful. Функции могут выполняться на предстоящих кортежах транзакций.

  3. Похоже, вы хотите, чтобы государства вместо функций. Государство помнит, что оно уже завершено, и проигнорирует его при повторном воспроизведении.

+0

Почему партия будет воспроизведена, когда она уже выполнена? – user12458

+0

Он будет воспроизводиться только в том случае, если была обработана ошибка в пакете. –

+0

Что делать, если только функция в топологии не выполняется, то называется ли только эта функция? – user12458