Я разрабатывал настоящий двигатель с использованием шторма. Я использую топологию трезубца, чтобы в основном объединить некоторые действия, которые происходят на нашем веб-сайте, и сохранять их в cassandra. Я следовал этой статье «Trident State», чтобы понять, как сохранить значения в кассандре. Я попытался определить транзакционный носик (не уверен, действительно ли он транзактивен), сохраняя txnId и count в cassandra. Мой источник ввода - это очередь RabbitMq.Проектирование трезубца трезубца и текущих идентификаторов транзакций
Мы обновляем счет в часовых ведрах, т.е. все действия, которые произошли за час, будут суммированы и сохранены как одна запись в кассандре. Проблема, с которой я сталкиваюсь, заключается в том, что до тех пор, пока топология работает, подсчеты обновляются должным образом. Как только я перезапущу топологию, последнее часовое ведро очищается новым счетчиком. Я не уверен, что это потому, что txnid начинается с 1 снова. Как обойти эту проблему.
Cassandra запись до перезапуска штормового
Key | ts | txnId | count
viewers:country:US | 2013-11-26 08:00:00-0500 | 1 | 6
viewers:country:US | 2013-11-26 09:00:00-0500 | 2 | 3
viewers:country:US | 2013-11-26 10:00:00-0500 | 3 | 11
После перезапуска штормового
viewers:country:US | 2013-11-26 08:00:00-0500 | 1 | 6
viewers:country:US | 2013-11-26 09:00:00-0500 | 2 | 3
viewers:country:US | 2013-11-26 10:00:00-0500 | 1 | 2
На самом деле для третьей позиции я жду, чтобы он стал 11 + 2, так как он и имеет то же время ведра 2013- 11-26. Также txnId сбрасывается на 1. Как мне изменить дизайн.